私はWASの下でNetTcpバインディングとメタデータを実装するのに成功しましたが、WAS/IISの下のnetMsmqBindingに問題があります。簡単に言えば、WAS/IISではなく、Self Hosted NetMsmqバインディングアプリケーション用のMEXを実装できます。それはWASが私が自己ホストされたアプリで任意のアドレスを使用できる場所で使用するアドレスのいずれかを拒否しているようです。私は自己ホスト型でこれを行うことができますつまり:WCF - メタデータを生成できません/ IISでNetMsmqバインディングのMEXを実装しましたか?
<system.serviceModel>
<services>
<service name="Microsoft.Samples.MSMQTransactedSample.OrderProcessorService" behaviorConfiguration="OrderProcessorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
<!-- Define NetMsmqEndpoint -->
<endpoint address="net.msmq://localhost/private/ServiceModelSamplesTransacted" binding="netMsmqBinding" bindingConfiguration="TransactedBinding" contract="Microsoft.Samples.MSMQTransactedSample.IOrderProcessor" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="OrderProcessorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netMsmqBinding>
<binding name="TransactedBinding">
<security mode="None" />
</binding>
</netMsmqBinding>
</bindings>
</system.serviceModel>
Hoever、私はWASで似たようなを試し、それはそれはmetdataをホストしています何のエンドポイントはアドレス8000でliseningないと言います。誰かが私には、メタデータを取得したり、WASにNetMsmqのためのMEXの実装を支援することができます:
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="MsmqBindingNonTransactionalNoSecurity" exactlyOnce="false">
<security mode="None"/>
</binding>
</netMsmqBinding>
</bindings>
<services>
<service name="Portal.LoadSim.Services.MsmqService" behaviorConfiguration="PortalServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/PortalLoadSimServices10/MsmqService"/>
</baseAddresses>
</host>
<!-- Define NetMsmqEndpoint -->
<endpoint address="net.msmq://localhost/private/PortalLoadSimServices10/MsmqService.svc" binding="netMsmqBinding" bindingConfiguration="MsmqBindingNonTransactionalNoSecurity" contract="Portal.LoadSim.Shared.IMsmqService" />
<!-- the mex endpoint is exposed at http://localhost:8000/PortalLoadSimServices10/MsmqService/mex -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="PortalServiceBehavior">
<!-- 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>
</system.serviceModel>
「http:// localhost:8000/PortalLoadSimServices10/MsmqService/mex /」をダウンロード中にエラーが発生しましたリモートサーバに接続できませんターゲットマシンが積極的にそれを拒否したため接続できませんでした127.0.0.1 :8000。メッセージを受け入れることができるhttp:// localhost:8000/PortalLoadSimServices10/MsmqService/mex /でリッスンしているエンドポイントはありませんでした。これは、しばしば不正なアドレスまたはSOAPアクションによって引き起こされます。詳細については、InnerException(存在する場合)を参照してください。 –
http:// localhost:8000/PortalLoadSimServices10/MsmqService/mexにサービス参照を追加しようとしました –
urlaclエントリを削除し、mexを含むメタデータに完全なアドレスを追加しようとしました。 )。 – stephenl