2009-04-01 8 views
2

J'ai une application client-serveur, dans laquelle le client communique avec le serveur en utilisant WCF (WCF est utilisé à la fois dans le client et le serveur). Mon problème est, que l'instanciation du proxy généré automatiquement dans le client, de la manière suivante: ChannelFactory.CreateChannel et l'instanciation proxy est lente dans WCF

new Service1Client()
prend constamment 15.xxx secondes. J'ai essayé de résoudre ce problème, et est arrivé aux résultats suivants:

1) Compiler et exécuter le même code sur d'autres ordinateurs, se termine de la même manière (toujours 15.xxx secondes).

2) Instancier le proxy en utilisant ChannelFactory.CreateChannel< IService1 >() n'aide pas (il donne le même résultat). Je suppose que chaque fois que l'usine de canaux crée un canal, elle essaie de faire quelque chose avec un délai de 15 secondes, et quand elle échoue, elle continue avec la création.

Soit dit en passant, j'utilise .Net 3.5 sans SP1, et ne peut pas mettre à niveau vers SP1 :(

Merci d'avance

Répondre

0

Je l'ai vu avant, où le temps était pris à la recherche d'un serveur proxy. Vérifiez votre WinINET (Internet Explorer) les paramètres de proxy.


Ma raison spécifique de penser « serveur proxy » est que cela prend 15s. 15s sonne comme un beau chiffre rond pour un délai d'attente du réseau.

+0

Merci, je vais essayer de vérifier cela. Bien qu'il soit étrange que sur instanciation il recherche un serveur proxy - ceci devrait être effectué pendant le premier appel d'opération ou quelque chose ... – Andy

+0

Je pense que ce n'était pas le problème ... il n'y avait aucun serveur proxy défini sur cet ordinateur. – Andy

+0

Je vous suggère de regarder avec Fiddler ou quelque chose pour voir s'il se passe quelque chose avec le réseau. 15s est trop parfait. –

1

Même s'il est déjà obsolète, il peut être utile pour quelqu'un d'autre de rechercher la même chose. Le problème pourrait être avec le problème de résolution de DNS, qui pourrait être résolu dans SP1. Vous pouvez donc vérifier si cela se produit uniquement lorsque vous utilisez le nom d'hôte ou également avec une adresse IP spécifiée.

0

Même si c'est une information très ancienne, je viens de trouver ce problème, même si je connaissais un délai de 7 secondes sur le premier appel à une méthode sur le client de service, j'ai suivi (dans mon environnement) ci-dessus, mais dans mes circonstances, ce n'était pas un proxy activé, mais les paramètres de détection automatique.

Connexions -> Paramètres réseau et paramètres de détection automatique ont été activés.

J'ai joué avec le machine.config et app.config et mis

<runtime> 
    <generatePublisherEvidence enabled="false"/> 
</runtime> 

qui a également fait aucune différence.

J'ai trouvé cette réponse ici et je pensais que je contribuerais un peu plus d'informations au cas où quelqu'un d'autre dans le futur éprouve quelque chose comme ça. (Avec un service WCF .Net 4)

Questions connexes