0

netTcp WCFリモート マシンの Windows サービスでサービスを実行しています。Windows サービスはユーザーとして実行されていますmydomain\u2

.configWindows サービスでホストされる WCFのファイルは次のとおりです。

<security mode="None">
            <transport clientCredentialType="None" />
            <message clientCredentialType="None" />
</security>

今私が走るとき

svcutil.exe http://wcfhostmachine:8000/MyWCFService?wsdl

クライアントoutput.configには、次のセキュリティ部分があります。

<security mode="None">
     <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
     <message clientCredentialType="Windows" />
</security>

それらは違う。どうして??サーバーに合わせてクライアントを変更する必要がありますか??

サービスに命令を送信しWCFて処理することはできますが、Visual Studio がリモート ホストで実行されているコードにステップ インしようとすると、次のようなWCF悪名高いメッセージが表示されます。

'....' を自動的にデバッグできません。サーバー マシンへの接続に失敗しました。ターゲット コンピューター上の Visual Studio リモート デバッガーは、このコンピューターに接続できません。DNSがターゲット コンピュータで正しく構成されていることを確認します。

いいのは言うまでもありませんDNS

この状況に陥った理由として考えられる他の唯一の理由は、Visual Studio が として実行さmydomain\u1れており、リモート マシンでサービスが として実行されているためmydomain\u2です。

過去にこの問題に直面した/解決した人はいますか?

より詳しい情報

以下は、ホスト サービスの App.config です。mex エンドポイントがないために、この問題が発生する可能性はありますか?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="my.Indexer" behaviorConfiguration="IndexerServiceBehavior">
        <host>
          <baseAddresses>
            <add baseAddress="http://hostmachine:8000/Indexer"/>
          </baseAddresses>
        </host>
        <endpoint address="net.tcp://hostmachine:9000/Indexer"
                  binding="netTcpBinding"
                  bindingConfiguration="Binding1"
                  contract="my.IIndexer" />
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="Binding1"
                     hostNameComparisonMode="StrongWildcard"
                     sendTimeout="00:10:00"
                     maxReceivedMessageSize="65536"
                     transferMode="Buffered"
                     portSharingEnabled="false">
          <security mode="None">
            <transport clientCredentialType="None" />
            <message clientCredentialType="None" />
          </security>

        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="IndexerServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
4

1 に答える 1