문제

.net wse wse soaptcptransport.getInputChannel 또는 더 구체적으로 soapreceivers.add와 함께 작동하기 위해 IPv6 주소를 가져 오는 데 문제가 있습니다. 지구상의 다른 사람 이이 문제를 겪고있는 것 같지 않기 때문에, 나는 내가 뭔가 잘못하고 있다고 가정합니다.

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 : 0000 : C450 : 7142 : 67f5 : ad66] : 9063/..”

이 둘의 유일한 차이점은 URI가 IPv4 또는 IPv6 주소로 생성된다는 것입니다. 두 주소 모두 핑에 응답합니다. 이 동작은 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.
}

나는 이것을 물었다 MSDN 포럼에서 동일한 질문.

도움이 되었습니까?

해결책

사과드립니다. 나는 어떻게 든 당신의 질문을 놓쳤다. ASMX 포럼에서 대답했습니다.

확인하기 위해 : 당신은 "알고 있습니까?"WSE는 더 이상 사용되지 않습니다 - 필요한 경우에만 사용하십시오"?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top