无法使用此设置与WCF服务进行通信:具有SSL证书的Microsoft Forefront / TMG后面的WCF服务的IIS

时间:2012-05-23 13:24:38

标签: wcf iis ssl-certificate wcf-security

我在Microsoft Forefront / TMG后面运行WCF服务。该服务使用端口80在IIS上.TMG侦听端口443. TMG已安装SSL证书。 TMG设置由我们的IT部门完成。我可以访问https://mypublicsite:443/myservice.svchttps://mypublicsite:443/myservice.svc?wsdl。但是,如果使用Visual Studio测试客户端:WCFTestClient.exe(或任何客户端) - 在执行此错误的调​​用时出现超时:

  

无法调用该服务。可能的原因:服务离线或无法访问;客户端配置与代理不匹配;现有代理无效。有关更多详细信息,请参阅堆栈跟踪。您可以尝试通过启动新代理,还原到默认配置或刷新服务来恢复。

我现在卡住了。当从网络内部使用http://myinternalsite:80/myservice.svc访问服务时,一切正常。有解决方案的人吗?或者找到解决方案的方法?

3 个答案:

答案 0 :(得分:0)

可能是:

  • 您被防火墙阻止(尝试使用telnet)
  • TMG设置有问题(尝试从浏览器访问服务wsdl)
  • 您的wcf配置设置为使用/不使用传输安全性(检查服务器和客户端配置文件是否匹配)

答案 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,   
}