2

netTcpBindingの代わりにWCFサービスを動作させようとしていますが、動作wsHttpBindingさせられないようです。

net.tcpIIS7.5にバインディングを追加しましたが、ステータスは不明です( httpバインディングも削除すると、サイトに大きな赤いXが表示され、設定に再度アクセスする前に、新しいhttpバインディングを追加する必要があります)。私はすでにこことGoogleを調べましたが、真の解決策がなければ、この問題に関する投稿は2つか3つしか見つかりませんでした。

私が持っているもの:

  • WASサービスが実行されており、Net。*サービスも実行されていました。
  • IISの[詳細設定]にnet.tcpを追加しました。
  • WCFnon-httpがインストールされています。

netstatで、指定したポート809でリッスンしていることを示すTCPリスナーが実行されているようです。また、ファイアウォールメッセージが表示されます(ファイアウォール/アンチウイルスを無効にしようとしましたが、役に立ちませんでした)。

WCFテストクライアントの結果、次のエラーが発生します。

エラー:net.tcp:// localhost:809/MyService.svcからメタデータを取得できません

私のWeb.config(主にMSDNからコピーされたもので、適切なレイアウトについてはhttp://pastebin.com/Ru8p0T9Nを参照してください):

<services>
  <service behaviorConfiguration="MyBehavior" name="WCFService.MyService">
    <endpoint address="" binding="netTcpBinding" bindingConfiguration="Binding1" name="MyServiceEndpoint" contract="WCFService.MyService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" name="MyServiceMexTcpBidingEndpoint" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:809/MyService.svc" />
      </baseAddresses>
    </host>
  </service>
</services>
<behavior name="MyBehavior">
  <serviceMetadata httpGetEnabled="false" />
  <serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<netTcpBinding>
  <binding name="Binding1"hostNameComparisonMode="StrongWildcard"sendTimeout="00:10:00"maxReceivedMessageSize="65536"transferMode="Buffered"portSharingEnabled="true">
    <security mode="Message">
      <transport clientCredentialType="None" />
      <message clientCredentialType="None" />
    </security>
  </binding>
</netTcpBinding> 

すべてが正常に機能しますが、では機能wsHttpBindingしませんnet.tcp。複数のソースからWeb.configでいくつかの異なる設定を試しましたが、同じ問題が発生し続けます。

4

2 に答える 2

1

IISで有効なプロトコルとしてnet.tcpを追加しましたか?ウェブサイトの管理=>詳細設定=>有効なプロトコル(カンマ区切り)

于 2012-05-24T21:10:25.910 に答える
0

同じ問題を抱えている人のために:前に言ったように、アプリケーションプールをクラシックに変更して機能しませんでした(httpも機能しなくなりました)が、元に戻してアプリケーションプールをリサイクルすると、突然機能しました。

于 2012-06-01T16:38:52.820 に答える