Net.tcp를 사용하여 WCF 서비스에 연결할 수없는 이유는 있지만 HTTP를 사용 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/201004

  •  03-07-2019
  •  | 
  •  

문제

ServiceHostFactory와 함께 IIS에서 WCF 서비스를 실행하고 있습니다. WSHTTPBinding으로 잘 작동하지만 속도와 모든 것이 동일한 네트워크 (방화벽 없음)에 있기 때문에 대신 NetTCPBinding을 사용하여 약간의 속도를 높이고 싶습니다.

그렇게하려고 할 때이 오류가 발생합니다.

net.tcp : //zzz.xxx.yyy/myservice.svc에 연결할 수 없습니다. 연결 시도는 00 : 00 : 01.0464395의 시간 동안 지속되었습니다. TCP 오류 코드 10061 : 대상 기계가 적극적으로 XXXX : 808을 거부했기 때문에 연결할 수 없습니다.

사용 중입니다 SecurityMode.None 그것이 나를 망쳐 놓지 않도록하기 위해 두 가지 다른 시도에서 이것들 중 하나를 시도했습니다.

binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
binding.Security.Message.ClientCredentialType = TcpClientCredentialType.Windows;,

또한 서비스 호출 중 하나에서 상당히 많은 데이터를 가져오고 있다고 지적해야하므로이를 배치합니다 (HTTP 및 TCP 시도 - MaxMessagesize를 1000000으로 설정).

binding.MaxReceivedMessageSize = maxMessageSize;
binding.ReaderQuotas.MaxArrayLength = maxMessageSize;

작동하는 것이 매우 쉬워야합니다. 그래서 내가 무엇을 놓치고 있습니까?

업데이트 : 웹 사이트 ID에 TCP 포트 808을 추가하고 다시 시도했습니다. 이제이 오류가 발생합니다.

.NET 프레이밍을 지원하지 않는 서비스에 채널을 만들려고했습니다. HTTP 엔드 포인트를 만날 수 있습니다.

도움이 되었습니까?

해결책

체크 아웃 이 게시물 IIS 7.0에서 비 HTTP 바인딩을 활성화합니다. 기본적으로 IIS 7.0에서 net.tcp를 명시 적으로 활성화해야합니다.

도움이 되었기를 바랍니다.

업데이트:

귀하의 의견을 보았습니다. 불행히도 Net.TCP는 IIS 6.0에서 지원되지 않습니다. 체크 아웃 이 링크 다양한 호스트에 대한 지원되는 WCF 바인딩 (자체 호스팅 포함, 및 IIS 포함)을 자세히 설명합니다. IIS 6.0에서는 HTTP 바인딩 작업 만 작동합니다.

다른 팁

Vista를 사용하는 경우 WAS 및 NET.TCP 리스너 어댑터 서비스가 실행되고 있는지 확인하십시오.

우연히 발견하는 사람이라면 누구나 문제를 해결하는 Net.tcp WCF 문제에 대한 나의 안내서 : 다음과 같은 문제가 있습니다.

  1. net.tcp가 웹 사이트에 활성화 된 프로토콜인지 확인하십시오 (IIS에서 사이트를 마우스 오른쪽 버튼으로 클릭하고 고급 설정을 사용하고 활성화 된 프로토콜에 "net.tcp"가 포함되어 있는지 확인하십시오.
  2. 이것이 편집증인지 확실하지 않으며, 또한 명령 줄을 통해 사이트의 net.tcp를 활성화해야합니다. c:\windows\system32\inetsrv, 입력하다 appcmd.exe set app "NameOfWebsite/" /enabledProtocols:http,net.tcp
  3. IIS의 웹 사이트의 바인딩에 Net.tcp에 대한 항목이 있고 올바른 포트 번호로 바인딩되어 있는지 확인하십시오 (나에게는 9000 :* 포트 9000에 대한 바인딩으로 사용). 또한 IIS의 다른 웹 사이트가 동일한 net.tcp 바인딩 해당 포트에 사용하지 않는지 확인하십시오.
  4. "net.tcp 리스너 어댑터"서비스가 실행 중인지 확인하십시오.

완료.

net.tcp 리스너 어댑터 서비스를 시작하면 서비스가 잘 작동합니다.

포트 808을 허용하지 않는 서비스 호스트의 방화벽 규칙만큼 간단 할 수 있습니까?

IIS가 동일한 포트 번호를 가리키는 프로토콜이 있는지 확인합니다.이 경우에도 효과가 없을 경우 방금 발견했습니다.

또한 Window Server 2008 R2 에서이 문제를 겪고있었습니다.

NET.TCP 포트 공유 서비스가 시작되었는지 확인하십시오. NET.TCP 리스너 어댑터의 종속성이므로

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