1

我有一个在本地开发环境中配置的 WCF 服务,并使用自签名证书通过 IIS 运行,因此我可以使用 wsHttpBinding 支持 SSL 和事务。

在我运行 IIS 7.5 的本地 Win7 机器上一切正常。

我正在将我的服务应用程序部署到运行 IIS 7.5 的 Win2008 R2 服务器。

应用程序池配置为集成 .NET 4.0。

当我运行构建并部署到我的开发服务器时,其中一项服务不断抛出 InvalidOperation 异常,指出我的服务正在使用的“WebHttpBinding”没有设置事务流属性。

这是我在 web.config 中配置的仅有的 2 个绑定:

<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IRetrieval" closeTimeout="infinite" openTimeout="infinite" receiveTimeout="infinite" sendTimeout="infinite" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>
    <wsHttpBinding>
        <binding name="wsHttpEndpointBinding" transactionFlow="true">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
    </wsHttpBinding>
</bindings>

为什么报错说配置的WebHttpBinding没有设置属性?我什至没有在配置中指定那种类型的绑定。

我有另一个服务也使用我在这里声明的 wsHttpBinding 并且工作正常。所以在这一点上,我几乎不知道为什么其中一个有效而另一个抛出错误。

我确实将服务标记为强制交易,并且我已经设置了所有内容来说明这一点。

任何人都知道为什么我的一项服务很糟糕,而另一项服务很好?

4

0 回答 0