Azure Appサービスとして実行するLoupeサービスの検証に取り組んでいます。一時ディレクトリを解決しようとするものは例外で失敗しますAzure Appサービスでホストされている.NET Webサイトの一時ディレクトリを取得できません。
mscorlib : System.IO.IOException The directory name is invalid. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.__Error.WinIOError() at System.IO.Path.InternalGetTempFileName(Boolean checkHost)
スタックトレースは、一時ファイル名を生成するための.NETメソッド内でこれを持っています。このスタックトレースは、ほとんどすべての失敗領域に共通しています。私たちがサイトを強制的に再起動したり、強制的に元のApp Service Planを再スケーリングしたりすると、サイトを次回更新するまではなくなるはずです。
偽装が有効になっている場合にこのエラーが発生し、偽装したユーザーがIIS App Poolユーザーの一時ディレクトリにアクセスできないという唯一の検索結果があるため、まず、失敗した要求が行われた時点でスレッドが偽装していないことをログから確認できます。次に、楽しいためにweb.configにこれを追加して二重になるようにしました。
<system.web>
<identity impersonate="false"/>
</system.web>
すべては無駄です。これがAzure App Servicesの一般的な問題だった場合、私はそれが多くのシステムを壊してしまうだろうと推測していましたので、魅力的で間違ったことをしていると結論づけなければなりません。
いつもこのエラーが出ますか、それとも時々正しく動作していますか? –
この時点で、一時ディレクトリ* boom *が必要なものを呼び出すたびに、それ以上は動作しません。以前はプロセスがこの動作を示していた頃には戻ってこなかったが、再起動すると時折(プロセスの寿命の間)動作した。 –