2010-11-03 4 views
0

J'utilise VS2010 + C# + .Net 4.0 + IIS 7.0 + WCF. Lorsque je crée une instance d'objet client WCF dans le code ci-dessous, je trouve que "le point de contrôle 1" est enregistré, mais "point de contrôle 2" n'est pas enregistré. Mais aucune exception n'est levée (j'attrape l'exception dans tout le bloc de code, et le "point de contrôle 3" n'est pas sorti).Problème de création de client WCF

Des idées comment déboguer davantage pour voir les problèmes dans la création de proxy client WCF? Quels sont les problèmes normaux dans la création de proxy client WCF (je pense que la création a juste besoin de créer un objet mémoire local pour représenter l'instance d'objet client WCF, pas besoin de vraiment communiquer avec le service WCF distant si je me trompe)? Peut-être quelques erreurs de configuration? BtW: le code ci-dessous se trouve dans un service WCF (extrémité du serveur WCF, exécuté/hébergé dans IIS 7.0) pour appeler un autre service WCF distant.

try 
{ 
    MyLogger.Write("check point 1 "); 
    Foo.CustomerInfo ci = new Foo.CustomerInfo(); 
    MyLogger.Write("check point 2"); 
} 
catch (Exception ex) 
{ 
    MyLogger.Write("check point 3"); 
    return; 
} 

merci à l'avance, George

Répondre

1

Quelques idées:

  • Essayez de mettre l'enregistrement dans le constructeur
  • Foo.CustomerInfo() Essayez d'utiliser end to end tracing avec Service Viewer Trace (habituellement dans netfx 4.0 Outils \ SvcTraceViewer.exe).
  • Assurez-vous que vous avez retour de service détails d'exception dans les défauts si le client peut « voir » (par exemple serviceDebug includeExceptionDetailInFaults = « true »)
  • Si vous autogenerated proxy client, vous pouvez le modifier et ajouter l'enregistrement dans la partie classe de client proxy
+0

Merci zam6ak! "Assurez-vous que vous avez votre service retourner les détails de l'exception dans les failles afin que le client peut" les voir "- vous voulez dire comment modifier ma classe? Voulez-vous dire modifier la classe qui appelle le service WCF distant Foo.CustomerInfo, ou vous voulez dire modifier la classe qui implémente le WCF distant? Appréciez si vous pouviez fournir plus de détails. – George2

+0

@ George2 Jetez un oeil à cet article http://stackoverflow.com/questions/3979010/wcf-exception-handling/3979662#3979662. Si votre service génère des erreurs, vous pouvez les récupérer en utilisant FaultException (s'il n'est pas typé). Toutefois, le client ne sera pas en mesure d'afficher les détails de l'exception tant que vous n'aurez pas défini setExceptionDetailInFaults = "true" dans le comportement du service (dans la configuration du service elle-même, et non côté client). – zam6ak