2012-04-27 1 views
0

서버가 IIS 서버에서 호스팅되는 하나의 서버/클라이언트 응용 프로그램이 있으며 많은 클라이언트가 IIS 서버에 연결됩니다. 이중 바인딩은 서버에서 클라이언트로 메시지를 브로드 캐스팅하는 데 사용됩니다.Win7에서 wsDualHttpBinding 오류가 발생했습니다.

Windows Vista를 사용하는 컴퓨터에서 오류가 발생하지만 Windows 7을 사용하는 클라이언트 PC에서 클라이언트 응용 프로그램을 테스트 할 때 오류가 발생합니다. 지금은 얻을

HTTP could not register URL http://+:80/Temporary_Listen_Addresses/cc6f2e30-ff08-4bfc-8397-d67630337a9c/ because TCP port 80 is being used by another application. Exception handled on main UI thread 1.

인터넷에서 솔루션에 따라, 내가 클라이언트 설정 파일에 clientBaseAddress 추가 (변화 없음 및 서버 설정에 clientBaseAddress를 추가하지) 않은 :

처음이 오류가 두 번째 오류 :

HTTP could not register URL http://+:91/NightlyBuild/NonVer/Communication/ . Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details). Exception handled on main UI thread 1.

확인 좀 코멘트 나뿐만 아니라, 내가 이전의 두 에러가 발생하지 않도록 할 수 있지만, 시간이 나는 시간 초과 오류가 발생한 후 얻을, 관리자 모드에서 클라이언트 응용 프로그램을 실행하는 데 필요한 말했습니다 화면이 5 분 동결됩니다.

시간 초과 오류가 아래

The open operation did not complete within the allotted timeout of 00:05:00. The time allotted to this operation may have been a portion of a longer timeout. Exception handled on main UI thread 1.

내가 두 번째 오류를 칠 때 내가 사용하고 클라이언트 설정입니다. 클라이언트 설정에서

<wsDualHttpBinding> 
     <binding name="WSDualHttpBinding_ICommunicationService" 
       closeTimeout="00:05:00" openTimeout="00:05:00" receiveTimeout="00:10:00" sendTimeout="00:05:00" 
       bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
       maxBufferPoolSize="0" maxReceivedMessageSize="2147483647" 
       messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
       clientBaseAddress="http://remote-server:8001/Communication/"> 
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
      <reliableSession ordered="true" inactivityTimeout="00:10:00" /> 
      <!--<security mode="Message"> 
      <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" /> 
      </security>--> 
      <security mode="None" /> 
     </binding> 

엔드 포인트 :

<client> 
     <endpoint address="http://remote-server:90/Communication/CommunicationService.svc" binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_ICommunicationService" contract="CommunicationService.ICommunicationService" name="WSDualHttpBinding_ICommunicationService"> 
     </endpoint> 
    </client> 

정말 아이디어의 부족, 의견?

+0

들어오는 호출을 차단하는지 확인하기 위해 방화벽을 끄는 것은 어떻습니까? –

+0

당신은 IIS 서버의 방화벽을 의미합니까? 절대로 끄지는 않겠지 만 Vista 머신이 잘 작동합니다. 또한 WinXP의 경우 clientBaseAddress를 추가 한 후에이 문제가 해결되지만 Win 7에서는 운이 없습니다. 그러나 관련성을 확인하기 위해 노력할 것입니다. 감사. – tzuhsun

+0

기본적으로 모든 Windows 시스템은 Win7을 포함한 방화벽을 사용합니다. 예기치 않은 포트 91 (btw는 1024보다 큰 포트를 사용해야 함)에서 콜백을 수신하도록 클라이언트를 구성 했으므로 방화벽이 실행중인 경우이 포트에 대해 열리지 않은 것일 수 있습니다. –

답변

0

지정한 URL이 프로세스를 실행하는 사용자에게 등록되지 않았기 때문에 클라이언트 "HTTP could not register ..."오류가 발생합니다.

일시적으로 해결하려면 HTTPNamespaceManager.exe 프로그램을 사용하여 로컬 컴퓨터에서 URL 액세스 예약 목록을 수정할 수 있습니다. 여기에서 받으십시오 : PaulWh's Tech Blog