我在Microsoft Forefront / TMG后面运行WCF服务。该服务使用端口80在IIS上.TMG侦听端口443. TMG已安装SSL证书。 TMG设置由我们的IT部门完成。我可以访问https://mypublicsite:443/myservice.svc
和https://mypublicsite:443/myservice.svc?wsdl
。但是,如果使用Visual Studio测试客户端:WCFTestClient.exe(或任何客户端) - 在执行此错误的调用时出现超时:
无法调用该服务。可能的原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理,还原到默认配置或刷新服务来恢复。
我现在卡住了。当从网络内部使用http://myinternalsite:80/myservice.svc
访问服务时,一切正常。有解决方案的人吗?或者找到解决方案的方法?
答案 0 :(得分:0)
可能是:
答案 1 :(得分:0)
找到解决方案。得到fiddler2以显示网络包的内容。这引导我找到解决方案。 500响应的原因是由于WCF AddressFilter不匹配。通过将此添加到我的服务中来解决此问题:[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]
这篇文章帮助了我: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b5ae495b-f5fb-4eed-ae21-2b2280d4fec3/
答案 2 :(得分:0)
当我在服务发送的Enum上没有零值时,我收到此错误。 如果使用枚举,请确保已定义发送的值。 默认值为0 。
[DataContract]
public enum MyEnum // No name for value 0 in this enum
{
[EnumMember]
Something1=1,
[EnumMember]
Something2=2,
}