私の ASP Web ページ アプリケーションは、ルート ディレクトリの下のローカル フォルダーに自己生成ファイルを書き込む必要があります。私の開発環境では、他の特定のネットワークの場所であっても、すべてが魔法のように実行されます。問題は、実稼働環境で同じことを行うことができないことです。どこにもファイルが作成されません。また、パーミッションの欠落などで例外がスローされることもありません。
過去 7 年間に誰かがインターネット上で書いたほぼすべてのものを読み、試してみたと思います。この問題を解決しようとして自分自身を追いかけているような気がします。それは本当に難しいことでしょうか?重複としてマークされるリスクがあるため、ここに質問を投稿する以外に選択肢はありません..
基本的に、これまでのところ私が持っているものは次のとおりです。
運用アプリケーションは、Windows Server 2008 R2、IIS バージョン 7.5 で実行されます。専用のアプリケーション プールがあり、ID が ApplicationPoolIdentity (.NET Framework v4 / 統合パイプライン) に設定されています。 アプリケーションの基本設定
IIS_IUSRS の AppPool メンバーシップを確認しました。 確認済みのグループ メンバーシップ
ユーザー認証は Windows 認証に設定されています。 ユーザ認証
ApplicationPoolIdentity を使用するには、匿名認証を「有効」に設定する必要がありますか? オンに設定しようとしましたが、アプリケーションの重要な部分である Windows 認証と競合し、オフにすることはできません。もしそうなら、どうやって?
アプリケーション プールと IIS_IUSRS の両方に、フォルダーに対する読み取りと書き込みのアクセス許可が付与されています。フル コントロールを設定しようとしましたが、それも役に立ちませんでした。 フォルダのセキュリティ設定
ファイルを目的の場所に書き込む (簡略化された) コードは次のとおりです。
私が試した他の(ばかげた)ことは次のとおりです。
- 私のコードで絶対パスと相対パスの方向をいじっています。
- 匿名認証を有効にすると、必要な Windows 認証と競合します。
- アプリケーション プールの ProcessModel ID を Network Service に設定します。
- アプリケーション プールをリサイクルします。
- アプリケーション プールのユーザー プロファイルを「オン」にロードします。
- ユーザーの IE セキュリティ強化の構成を「オフ」に設定しています。
- サーバー マシンを再起動しています。
- さまざまなブラウザを使用する。
- 効果を試すためだけに、「全員」に完全なフォルダー許可を与えます。何も..
- IIS 構成エディターを使用して、AuthenticatedUserOverride を UseWorkerProcessUser に設定します。これにより、アプリケーションが Current.User.Identity.Name を認識しなくなり、それ以上のサイト アクセスがブロックされます。
私が必要としているのは、Windows 認証を保持することですが、アプリケーションが特定の場所に匿名でファイルを書き込むこともできるようにすることです。
誰かが正しい方向に私をほのめかすことができますか、または私が見落としたことを教えてください。
ありがとう!