这是一个将在IIS中托管的WCF服务。当我从vs2010运行调试时,我的WCF客户端会收到此异常:
无法建立连接,因为目标计算机主动拒绝它
服务URL是由visual studio动态分配的服务URL,WCF服务正在VS中运行。奇怪的是,这个异常实际上从未传递给我的应用程序,当我开始在输出窗口中注意到这样的行时,我才进入它:
线程''(0xa5c)已退出,代码为0(0x0)。
每次在输出窗口中抛出时,都会出现System.Net.SocketException
。为什么VS托管的WCF服务无法访问?
这是一个.NET 4.0 WCF服务和客户端
更新 我想我应该多说一点。客户端在计时器上每1秒进行一次呼叫。我使用一个标志来确定调用是否完成所以我不重叠。只是要强调,这个错误实际上从未传递给我的客户端。我的客户端表现得就像呼叫成功一样。我甚至知道发生SocketException的唯一原因是因为我使用VS选项在Exception中断。
答案 0 :(得分:1)
在客户端应用程序或服务中抛出SocketException的位置?听起来这个线程是一个工作线程被调整为服务请求,所以这是正常的...如果在工作线程终止而没有回复后客户端发生套接字异常,我会把调试器放在服务代码,以查看它是否能够成功完成请求。
答案 1 :(得分:0)
有许多常见的罪魁祸首。
1)防火墙中尚未打开端口。
2)WCF端点代码在启动时抛出异常,通常这可能是权限问题或缺少dll。
3)端点和客户端上的地址,绑定或配置不相同。
答案 2 :(得分:0)
您收到的错误是TCP错误,而不是WCF错误。以下是一些要检查的事项:
如果您在同一台计算机(dev / staging)上运行服务和客户端,请在寻址服务时尝试使用127.0.0.1而不是localhost
仔细检查运行该服务的端口,确保没有冲突。
还要确保您正在通过客户端拨打电话中的正确端口。
答案 3 :(得分:0)
线程''(0xa5c)已退出 代码0(0x0)。
这是正常的,只适用于工作线程完成其工作。
无法建立联系,因为 目标机器主动拒绝它
绑定引用另一台计算机到端口是错误的。