インターネット経由で大きなファイルをアップロードするアプリケーションを開発しています。DotNetZipで圧縮する前のファイルサイズは約18GB、圧縮後は約4GBです。ファイルは、安全なftpによってクライアントマシンから宛先サーバーマシンに問題なく転送されます。
次に、クライアントは宛先サーバーマシンによってホストされている.Net Webサービスを呼び出して、ファイルをftpルートからストレージディレクトリにコピーし、ファイルハッシュを計算し、DotNetZipを呼び出してファイルを解凍します。
Webサービスは、クライアントマシンとWebサービスをホストする宛先サーバーマシンの両方がイントラネットにある場合にうまく機能します。
ただし、同じクライアントマシンを使用しているが、インターネット上でWebサービスをホストする別の実稼働先サーバーマシンを使用している場合、4GBファイルをコピー、ハッシュ、および解凍すると、Webサービスで「スレッドが中止されました」という例外が発生します。
両方のサーバーマシンは、SP2を搭載したWindows 2003サーバーであり、同じコンポーネントがインストールされ、同じIIS ver6.0があり、ASP.Net2.0を使用するように同じように構成されています。web.config、machine.config、MetaBase.xmlをイントラネットサーバーマシンからインターネットサーバーマシンにコピーしました。
変更点は次のとおりです。1。クライアント側コード:コード7200000のWebサービスプロキシタイムアウト2.サーバーマシンweb.configファイル:(1)。(2)。3.サーバーマシンmachine.configファイル:(1)。4.サーバーマシンMetaBase.xml:(1)。AspMaxRequestEntityAllowed = "1073741824" 5. IIS ver6で、[Webサイト]->[サービス]タブ->[分離モード]で、[WWWサービスをIIS5.0分離モードで実行する]がオンになっています。
インターネット上のサーバーマシンの問題についての現在の理解は、スレッドがファイルのコピーを終了し続けても、デフォルトのタイムアウト値で.Netリサイクルワーカープロセスが「スレッドが中止されました」という例外を引き起こすことです。
私たちの理解が正しければ、なぜ同じタイムアウト構成がイントラネット上のサーバーマシンで機能するのでしょうか。インターネット上の本番サーバーマシンでタイムアウト構成を機能させるにはどうすればよいですか?