ローカル開発環境で構成した WCF サービスがあり、自己署名証明書を使用して IIS を実行するため、wsHttpBinding を使用して SSL とトランザクションをサポートできます。
IIS 7.5 を実行しているローカルの Win7 マシンでは、すべて正常に動作します。
IIS 7.5 を実行している Win2008 R2 サーバーにサービス アプリを展開しています。
アプリケーション プールは、統合された .NET 4.0 用に構成されています。
ビルドを実行して開発サーバーにデプロイすると、サービスの 1 つが InvalidOperation 例外をスローし続け、サービスが使用している 'WebHttpBinding' に transactionflow 属性が設定されていないことを示します。
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 も使用する別のサービスがあり、そのサービスは正常に動作します。したがって、この時点で、一方が機能し、もう一方がエラーをスローしている理由について、私はかなり固執しています。
私はトランザクション必須としてタグ付けされたサービスを持っており、それを説明するためにすべてをセットアップしています。
私のサービスの 1 つが壊れていて、もう 1 つが正常である理由を知っている人はいますか?