【问题标题】:Unable to communicate to a WCF service with this setup: IIS with a WCF service behind a Microsoft Forefront/TMG with a SSL certificate无法使用此设置与 WCF 服务通信:带有 SSL 证书的 Microsoft Forefront/TMG 后面的 WCF 服务的 IIS
【发布时间】:2012-05-23 13:24:38
【问题描述】:

我有一个在 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 访问服务时,一切正常。谁有解决方案?或者找到解决方案的方法?

【问题讨论】:

    标签: wcf iis ssl-certificate wcf-security


    【解决方案1】:

    可能是:

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

    【讨论】:

      【解决方案2】:

      找到了解决办法。得到fiddler2 显示网络包的内容。这引导我找到解决方案。 500 响应的原因是由于 WCF AddressFilter 不匹配。通过将其添加到我的服务中已解决此问题:[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]

      这是帮助我的文章: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b5ae495b-f5fb-4eed-ae21-2b2280d4fec3/

      【讨论】:

        【解决方案3】:

        当我在服务发送的枚举中没有零值时出现此错误。 如果使用 Enums,请确保定义了发送的值。 默认为 0

        [DataContract]
        public enum MyEnum // No name for value 0 in this enum
        {
            [EnumMember]
            Something1=1,
            [EnumMember]
            Something2=2,   
        }
        

        【讨论】:

          猜你喜欢
          • 2013-12-03
          • 2014-11-15
          • 1970-01-01
          • 2011-03-18
          • 2013-06-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-03
          相关资源
          最近更新 更多