6

私はbasicHttpBindingを使ったWCFサービスを持っています。

クライアントとサーバーが同じネットワーク上にある場合、最初の呼び出しはスムーズになるよりも約 30 秒間ハングします。

DNSを使用してインターネット経由でクライアントから同じ呼び出しを行うと、ハングすることなくうまく機能します。

クライアントとサーバーはどちらもコンソール アプリケーションです。サーバーは Windows 7 を実行しており、問題のあるクライアントは Windows Server 2008 を実行しています。同じネットワーク上の両方のコンピューターがローカル セキュリティ ポリシーを使用しているため、ドメイン コントローラーはありません。

すべてのファイアウォールとウイルス対策をオフにしても、問題は解決しませんでした。

これは、ボックスが隣り合っているセットアップからのログです

09:33:05,252 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://192.168.1.11:18762/DiagnosticService
09:33:05,263 [1] INFO  Program: WcfAppender.InitializeWcfAppender: 08:33:05
09:33:05,274 [1] INFO  Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:05
09:33:05,298 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:05
09:33:32,661 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,668 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,680 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32
09:33:32,693 [1] INFO  Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:32

これは、別のネットワークからインターネット経由で同じサーバーにアクセスしたときのログです (遅延なし):

09:36:56,500 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://mydomain.com:18762/DiagnosticService
09:36:56,501 [1] INFO  Program: WcfAppender.InitializeWcfAppender: 08:36:56
09:36:56,501 [1] INFO  Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:36:56
09:36:56,501 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56
09:36:56,680 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56
09:36:56,680 [1] INFO  Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56
09:36:56,705 [1] INFO  Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56

また、ボックス間でtest.txtファイルをコピーして、同じ接続の問題が発生するかどうかを確認しました

4

1 に答える 1

5

このタイプのエラーは、デフォルト プロキシが定義されている場合に発生する可能性があります。これを app.config に追加して、デフォルト プロキシの使用を無効にします。

<system.net>
    <defaultProxy enabled="false" useDefaultCredentials="false">
        <proxy />
        <bypasslist />
        <module />
    </defaultProxy>
</system.net>

または、コメントですでに述べたように、 useDefaultWebProxy="false" :-) を使用します

于 2013-09-18T09:16:09.237 に答える