2012-04-27 18 views
0

サーバーがIISサーバーでホストされているサーバー/クライアントアプリケーションが1つあり、多くのクライアントがそのIISサーバーに接続します。Win7でwsDualHttpBindingエラーが発生しました

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を追加することはありません)している:

初めて私はこのエラーを持っています2番目のエラー:

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.

[OK]を私は同様に、私は前の2つのエラーを取得しないことを私はやる、いくつかのコメントは、管理者モードでクライアントアプリケーションを実行する必要性を述べたが、今回は私が後にタイムアウトエラーが発生しますスクリーンは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.

私は2番目のエラーが当たったとき、私は使用していたクライアントの設定です。クライアントの設定で

<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

関連する問題