これは、この質問の続きです。IISで実行されているWCFサービス(Visual Studio 2010内から)を構成して、1つのWebサービスと1つのnet.tcpサービスを実行しました。多くのハッキングの後、WebサービスをWCFテストクライアントにロードすることができましたが、Net.Tcpサービスをテストクライアントにロードすることができません。
これが私のWeb.configです。
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="ServerService" behaviorConfiguration="ServerServiceBehaviour">
<endpoint address="ServerService.svc"
binding="netTcpBinding"
bindingConfiguration="DefaultNetTcpBindingConfig"
name="NetTcpEndPoint"
contract="IServerService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange"
bindingConfiguration="mexTcpBinding"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8523/"/>
</baseAddresses>
</host>
</service>
<service name="MyWebService" behaviorConfiguration="WebServiceBehaviour">
<endpoint address="MyWebService.svc"
binding="wsHttpBinding"
bindingConfiguration="DefaultWSBinding"
name="MyWSEndPoint"
contract="IMyWebService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"
bindingConfiguration="mexHttpBinding"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8523/"/>
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="DefaultNetTcpBindingConfig"
maxConnections="5"
portSharingEnabled="true" >
</binding>
<!--<binding name="mexBinding"
portSharingEnabled="true">
<security mode="None"></security>
</binding>-->
</netTcpBinding>
<wsHttpBinding>
<binding name="DefaultWSBinding"/>
</wsHttpBinding>
<mexTcpBinding>
<binding name="mexTcpBinding"/>
</mexTcpBinding>
<mexHttpBinding>
<binding name="mexHttpBinding"/>
</mexHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ServerServiceBehaviour">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
<behavior name="MexBehaviour">
<serviceMetadata httpGetEnabled="true" policyVersion="Policy15"/>
</behavior>
<behavior name="WebServiceBehaviour">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" />
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Visual Studio Debuggerを実行してサービスを公開すると、WCFテストアプリケーションに次のURLを入力してWebサービスにアクセスできます。
しかし、次のURLをWCFテストアプリケーションに入力すると、エラーが発生します。
net.tcp:// localhost:8523 / ServerService.svc
これが私が見るエラーです:
エラー:net.tcp:// localhost:8523 / ServerService.svcからメタデータを取得できませんこれがアクセス可能なWindows(R)Communication Foundationサービスの場合は、指定されたアドレスでメタデータ発行が有効になっていることを確認してください。メタデータ発行を有効にするためのヘルプについては、http: //go.microsoft.com/fwlink/ ?LinkId = 65455.WSのMSDNドキュメントを参照してください-メタデータ 交換エラーURI:net.tcp:// localhost:8523 / ServerService.svcメタデータに解決できない参照が含まれています:'net.tcp:// localhost:8523/ServerService.svc'。.Netフレーミングをサポートしていないサービスへのチャネルを作成しようとしました。HTTPエンドポイントに遭遇している可能性があります。予期されるレコードタイプ「PreambleAck」、「72」が見つかりました。
この質問を読んだ後、VS 2010のWebサーバーがnet.tcpバインディングをサポートしていない可能性はありますか?