【问题标题】:WCF client creation issueWCF 客户端创建问题
【发布时间】:2011-05-04 10:31:54
【问题描述】:

我正在使用 VS2010 + C# + .Net 4.0 + IIS 7.0 + WCF。当我在下面的代码中创建 WCF 客户端对象实例时,我发现“检查点 1”已记录,但“检查点 2”未记录。但是没有抛出异常(我在整个代码块中捕获了异常,并且没有输出“检查点3”)。

任何想法如何进一步调试以查看 WCF 客户端代理创建中的问题? WCF客户端代理创建中的正常问题是什么(我认为创建只需要创建一个本地内存对象来代表WCF客户端对象实例,不需要真正与远程WCF服务通信,所以应该不会正常失败,请纠正我如果我错了)?可能是一些配置错误?

顺便说一句:下面的代码在 WCF 服务(WCF 服务器端,在 IIS 7.0 中运行/托管)中调用另一个远程 WCF 服务。

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;
}

提前致谢, 乔治

【问题讨论】:

    标签: c# .net wcf visual-studio-2010 iis-7


    【解决方案1】:

    几个想法:

    • 尝试将日志记录放入 Foo.CustomerInfo() 构造函数中
    • 尝试将 end to end tracing 与 Service Trace Viewer 一起使用(通常在 NETFX 4.0 Tools\SvcTraceViewer.exe 中)。
    • 确保您在错误中提供服务返回异常详细信息,以便客户端可以“看到”它们(例如 serviceDebug includeExceptionDetailInFaults="true")
    • 如果您自动生成客户端代理,您仍然可以对其进行编辑并在客户端代理的部分类中添加日志记录

    【讨论】:

    • 谢谢zam6ak! “确保您在错误中为您提供服务返回异常详细信息,以便客户可以“看到”它们”——您的意思是如何修改我的课程?您的意思是修改调用远程 WCF 服务 Foo.CustomerInfo 的类,还是修改实现远程 WCF 的类?感谢您提供更多详细信息。
    • @George2 看看这个帖子stackoverflow.com/questions/3979010/wcf-exception-handling/…。如果您的服务生成任何错误,您的客户端可以使用 FaultException 捕获它们(如果它是无类型的)。但是,除非您在服务行为中(在服务配置本身,而不是客户端)中设置了includeExceptionDetailInFaults="true",否则客户端将无法显示异常的详细信息。
    猜你喜欢
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2010-12-08
    相关资源
    最近更新 更多