【问题标题】:Odd exception during debug of WCF serviceWCF服务调试期间出现奇怪的异常
【发布时间】:2011-03-22 21:41:51
【问题描述】:

这是一个将托管在 IIS 中的 WCF 服务。当我从 vs2010 运行调试时,我的 WCF 客户端收到此异常:

由于目标机器主动拒绝,无法建立连接

服务 URL 是由 Visual Studio 动态分配的,WCF 服务是在 VS 中运行的。奇怪的是,这个异常实际上从未传递给我的应用程序,当我开始在输出窗口中注意到这样的行时,我才遇到它:

线程 '' (0xa5c) 以代码 0 (0x0) 退出。

每次在输出窗口中抛出时,都会出现System.Net.SocketException。为什么 VS 托管的 WCF 服务无法访问?

这是一个 .NET 4.0 WCF 服务和客户端

更新 我想我应该多描述一下。客户端在计时器上每 1 秒拨打一次电话。我使用一个标志来确定呼叫是否完成,所以我不重叠。只是为了强调,这个错误从未真正传递给我的客户。我的客户表现得好像呼叫成功一样。我什至知道发生 SocketException 的唯一原因是因为我使用 VS 选项在 Exception 处中断。

【问题讨论】:

    标签: c# wcf visual-studio-2010


    【解决方案1】:

    SocketException 是在客户端应用程序还是服务中抛出的?听起来线程是一个工作线程,正在为请求提供服务,所以这很正常......如果在工作线程终止而没有回复后客户端发生套接字异常,我会将调试器放在服务代码,看看它是否能够成功完成请求。

    【讨论】:

      【解决方案2】:

      有许多常见的罪魁祸首。

      1) 该端口尚未在防火墙中打开。

      2) WCF 端点代码在启动时抛出异常,这通常可能是权限问题或缺少 dll。

      3) 端点和客户端上的地址、绑定或配置不相同。

      【讨论】:

        【解决方案3】:

        您收到的错误是 TCP 错误,而不是 WCF 错误。以下是一些需要检查的事项:

        1. 如果您在同一台机器上运行服务和客户端 (dev/staging),请尝试在寻址服务时使用 127.0.0.1 而不是 localhost

        2. 仔细检查运行服务的端口并确保没有冲突。

        3. 还要确保在来自客户端的调用中寻址正确的端口。

        【讨论】:

          【解决方案4】:

          线程 '' (0xa5c) 已退出 代码 0 (0x0)。

          这是正常的,仅与工作线程完成工作有关。

          无法建立连接,因为 目标机器主动拒绝

          要么绑定将另一台机器引用到端口是错误的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-12-11
            • 2011-03-04
            • 1970-01-01
            • 2013-06-07
            • 1970-01-01
            • 2011-04-07
            • 2017-08-06
            • 1970-01-01
            相关资源
            最近更新 更多