.net IPv6和SOAPTCPTTransport.GetInputChannel(WSE)

.net IPv6和SOAPTCPTTransport.GetInputChannel(WSE),.net,ipv6,wse,.net,Ipv6,Wse,让IPv6地址与.NET WSE SOAPTCPTTransport.GetInputChannel或更具体地说是SoapReceivers.Add一起工作时遇到问题,后者在封面下使用GetInputChannel。因为这个星球上似乎没有其他人有这个问题,我认为我做错了什么 如果我使用IPv4地址和端口SOAP创建SOAP输入通道。tcp://192.168.0.198:9063 然后一切似乎都很好。当我为同一网络适配器soap.tcp://[fe80::c450:7142:67f5:ad66%

让IPv6地址与.NET WSE SOAPTCPTTransport.GetInputChannel或更具体地说是SoapReceivers.Add一起工作时遇到问题,后者在封面下使用GetInputChannel。因为这个星球上似乎没有其他人有这个问题,我认为我做错了什么

如果我使用IPv4地址和端口SOAP创建SOAP输入通道。tcp://192.168.0.198:9063 然后一切似乎都很好。当我为同一网络适配器soap.tcp://[fe80::c450:7142:67f5:ad66%11]:9063使用IPv6地址时,SOAPTCPTTransport.GetInputChannel引发异常:“System.ArgumentException:WSE813:以下传输地址无法映射到本地网络接口:soap.tcp://[fe80:0000:0000:0000:c450:7142:67f5:ad66]:9063/。”

两者之间的唯一区别是Uri是使用IPv4或IPv6地址创建的。两个地址都响应ping。此行为对于Microsoft.Web.Services2和3都是相同的。我有一个MS单元测试重现了这个问题:

[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.
}

我已经问过了。

我道歉。不知怎的,我错过了你的问题。我在ASMX论坛上回答了这个问题:

只是想确定一下:你知道吗