.NET WSE SoapTcpTransport.GetInputChannelまたはより具体的にはSoapReceivers.Add(IPv6アドレスをカバーで取得する)を使用するIPv6アドレスを取得できません。惑星の他の誰もこの問題を抱えていないようだから、私は何か間違っていると思う。IPv6とSoapTcpTransport.GetInputChannel(WSE)
IPv4アドレスとポート(soap.tcp://192.168.0.198:9063)を使用してSOAP入力チャネルを作成すると、すべてうまくいくように見えます。同じネットワークアダプタ(soap.tcp:// [fe80 :: c450:7142:67f5:ad66%11]:9063)にIPv6アドレスを使用すると、SoapTcpTransport.GetInputChannelが例外をスローします。 "System.ArgumentException:WSE813:次のトランスポートアドレスをローカルネットワークインターフェイスにマップできませんでした:soap.tcp:// [FE80:0000:0000:C450:7142:67F5:AD66]:9063/.. "
唯一の違いUriがIPv4アドレスまたはIPv6アドレスで作成されていることです。両方のアドレスがpingに応答します。この動作は、私が問題を再現MSユニットテストを持っているMicrosoft.Web.Services2と3の両方で同じです:私はこのsame question on the MSDN forumsを求めている
[TestMethod]
public void ShouldConstructInputChannelWithIpv6Address_Selfcontained()
{
Uri via = new Uri("soap.tcp://[fe80::c450:7142:67f5:ad66%11]:9063");
EndpointReference receiveEndpoint = new EndpointReference(via);
SoapTcpTransport soapTransport = new SoapTcpTransport();
ISoapInputChannel inputChannel = soapTransport.GetInputChannel(receiveEndpoint, SoapChannelCapabilities.ActivelyListening);
inputChannel.Close();
Assert.IsTrue(true); // If it makes it this far without an exception, then that's progress.
}
。