質問: 64を示しますが、一部のネットワークのみを経由します クライアントサーバー(w2k3、iis6、.net 2.0)でasp.netアプリケーションを実行しています。 fwiw、これは テスト インスタンスに移動されていません 製造 まだ。そのため、ssl、負荷分散などの下では実行されません。私たちのオフィスからサーバーのいずれかのページにアクセスすると、そのページが1回ヒットします。 iisログ(c:windows\system32\logfiles\w3svc1)を確認すると、そのページのgetが表示されます。その後、ページのボタンを押すと、ログファイルにpostが表示されます。これはこれまでのところ正常に機能しています。クライアントのネットワークにリモートでアクセスし、ローカルマシンの1つからページにアクセスすると、ログファイルにgetが表示され、ページのボタンを押すとログに表示されます 二 同じ秒のpost。 1つ目はステータス(sc-status、sc-substatus、sc-win32-status)200 0 64を示し、2つ目は200 0 0を示します。ログファイルでは、両方のpostが同じです。基本的に、ログは次のようになります(ただし、一部のデータをマスクしました)。#fields:date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(user-agent)sc-status sc-substatus sc-win32-status 2009-08-11 20:19:32 xxxx get /file.aspx-80-yyyy mozilla/4.0 +(compatible; + msie + 8.0; + windows + nt + 6.0; + wow64; + trident/4.0; + slcc1; +。net + clr + 2.0.50727; +。net + clr + 3.5.21022; +。net + clr + 3.5.30729; +。net + clr + 3.0.30618; + mddr; + officeliveconnector.1.4; + officelivepatch.0.0)200 0 0 2009-08-11 20:19:45 xxxx post /file.aspx-80-yyyy mozilla/4.0 +(互換; + msie + 8.0; + windows + nt + 6.0; + wow64; + trident/4.0; + slcc1; +。net + clr + 2.0.50727; +。net + clr + 3.5.21022; +。net + clr + 3.5。 30729; +。net + clr + 3.0.30618; + mddr; + officeliveconnector.1.4; + officelivepatch.0.0)200 0 64 2009-08-11 20:19:45 xxxx post /file.aspx-80-yyyy mozilla/4.0 +(compatible; + msie + 8.0; + windows + nt + 6.0; + wow64; + trident/4.0; + slcc1; +。net + clr + 2.0。 50727; +。net + clr + 3.5.21022; +。net + clr + 3.5.30729; +。net + clr + 3.0.30618; + mddr; + officeliveconnector.1.4; + officelivepatch.0.0) 200 0 0 問題は、ページが2回ヒットしています。データベースは最初の要求に対して操作を実行し、次に2番目の要求は重複操作が実行されていることを検出してエラーメッセージをスローします。ユーザーは操作が失敗したと思っていますが、実際には成功しました。sc-win32-status 64のエラーの説明は、「指定されたネットワーク名は使用できなくなりました」です。 postリクエストのhttpステータスが200であるとすると、サーバーはリクエストの処理に成功しますが、クライアントには通知されず、リクエストを再送信します。 どうすればこれをトラブルシューティングできますか? 内部ネットワークでのみこの動作を引き起こしている可能性のあるアイデアはありますか? 言及しておきますが、これは2つの異なるクライアントサイトで発生していますが、 ない 他の6つのクライアントサイトで、またはオフィスで、または8つのクライアントのいずれかにweb経由で接続します。 これをローカルネットワーク上で100%再現できるが、他の場所では0%の時間を再現できるのはなぜですか。 更新: 非常に少数の重複したpostリクエストには、最初に報告された64ではなく995のsc-win32-statusがありました。sc-win32-status= 995のエラーの説明は、次のとおりです。スレッドの終了またはアプリケーションの要求が原因で、i/o操作が中止されました。」これは意味がありません(コードへの完全なアクセス権があることを考えると)。この問題が発生している方法や理由がまだわかりません、しかし、新しいエラーコードは結局それがネットワークの問題ではないかもしれないと信じるように導いて、私は今ランダムコードバグの可能性を調査しています。
回答: プロキシサーバーを介してiis6からgzipされたバイナリファイルを提供しようとしたときに、同じ問題が発生しました。ウェブサイトに直接アクセスしても問題はありませんでした。私の場合、クライアントマシンで fiddler を実行し、応答を調べたところ、これが原因であることがわかりました。 fiddlerは、応答がエンコードされていることを警告し、gzipファイルのマジックナンバーが正しくなかったことを報告します。コードでバイナリファイルのgzip圧縮をオフにしたところ、問題が発生しなくなりました。