2

.NET4.0でWCFの検出メカニズムを使用しようとしています。これはWindows7で動作しますが、XPマシンでは失敗し、「要求されたアドレスはそのコンテキストでは無効です」というソケット例外が発生します(エンドポイントはsoap.udp://239.255.255.250:3702です)。

Windows 7とXPは真っ赤なニシンですか?netstatは競合を示していないようです。ここで何が欠けていますか?

次の設定を使用して、問題を示す簡略化されたテストサービスを作成しました。

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata/>
          <serviceDiscovery />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior>
          <endpointDiscovery />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service name="HelloWorldService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost/Demo"/>
          </baseAddresses>
        </host>
        <endpoint kind="mexEndpoint" />
        <endpoint kind="udpDiscoveryEndpoint" />
        <endpoint contract="Test.IHelloWorld" 
                  address="/Hello" 
                  binding="basicHttpBinding" />
      </service>
    </services>
  </system.serviceModel>
</configuration>
4

2 に答える 2

1

MicrosoftConnectにログオンしている問題があります。残念ながら、現在回避策はなく、Microsoftの対応は

あなたが言及している例外は、通常、ソケットを無効なIPアドレスにバインドしようとしたときに発生します。これを確認して、可能であれば別のOSのマシンで試してください。現在、XPのWCFディスカバリー機能の既知の制限はありません。

于 2011-01-22T19:12:34.030 に答える
0

XPマシンはファイアウォールまたはルーターの背後にありますか?具体的には、アドレス239.255.255.250は実際にXPマシンに属しているのでしょうか、それとも実際にNATアドレスを使用しているのでしょうか。ipconfigを実行して、ipconfigが何を持っているかを確認してください。

于 2011-01-22T19:35:03.147 に答える