3

時折、ファイルサーバーが遅く、ページがタイムアウトまでに終了しない場合、ASP.NetはThreadAbortExceptionでそれにヒットします。Win32Native.CreateFile内でそれが発生した場合、iisresetを実行するまでファイルハンドルはロックされたままになります。

これは.NETの欠陥ですか?タイムアウトを巨大な数に上げるなど、この悪いアイデアの不足について私たちにできることはありますか... ThreadAbort.Resetは、損傷がすでに発生していて、ファイルハンドルが返されていないため、役立つとは思いません。 FileStreamから自分で閉じます。


Microsoft.Win32.Win32Native.CreateFile(String lpFileName、Int32 dwDesiredAccess、FileShare dwShareMode、SECURITY_ATTRIBUTES securityAttrs、FileMode dwCreationDisposition、Int32 dwFlagsAndAttributes、IntPtr hTemplateFile)

Microsoft.Win32.Win32Native.SafeCreateFile(String lpFileName、Int32 dwDesiredAccess、FileShare dwShareMode、SECURITY_ATTRIBUTES securityAttrs、FileMode dwCreationDisposition、Int32 dwFlagsAndAttributes、IntPtr hTemplateFile)

System.IO.FileStream.Init(String path、FileMode mode、FileAccess access、Int32 rights、Boolean useRights、FileShare share、Int32 bufferSize、FileOptions options、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy、Boolean useLongPath)

System.IO.FileStream..ctor(文字列パス、FileModeモード、FileAccessアクセス、FileShare共有、Int32 bufferSize、FileOptionsオプション、String msgPath、ブールbFromProxy)

System.IO.FileStream..ctor(文字列パス、FileModeモード)で

4

2 に答える 2

0

finally句に close を含めるか、usingアプローチを使用して、コードでファイルを適切に閉じていますか?

于 2013-07-03T02:46:41.273 に答える