4

Windows 8 で IIS 8 を使用して、の ID で実行されるアプリケーション プールをセットアップしましたNetwork Service

ページのコードでは、次の呼び出しを行います。

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

どちらの呼び出しも null を返します。

組み合わせを試し<identity impersonate="true|false"/>たり、アプリケーション プール設定で [ユーザー プロファイルの読み込み] 設定を true|false に設定したりしましたが、常に null の結果が得られます。

次のいずれかを取得する予定です。

C:\Windows\ServiceProfiles\NetworkService\AppData\Local
C:\Windows\System32\config\systemprofile\AppData\Local

別のユーザーのマシンでは、アプリケーション プールがネットワーク サービスとして実行されていても、パス (IIS 7.5) として 2 番目のフォルダーを取得します。

これらのプロファイル フォルダで何が起こっている可能性がありますか?

4

2 に答える 2

1

%WINDIR%\System32\inetsrv\config\applicationHost.config探してい<applicationPoolDefaults>ます。の下<processModel>に、 がないことを確認してくださいsetProfileEnvironment="false"。その場合は、true に設定します。

于 2012-12-10T18:02:56.650 に答える
0

LoadUserProfile設定と、コンソールからの1つの追加呼び出しが必要だと思います。

cd "%〜dp0" md appdata

これにより、アプリプールユーザーに必要なフォルダーが作成されます。ただし、これによってEnvironment.SpecialFolder.ApplicationDataが正しいパスを返すかどうかはわかりません。

于 2012-08-21T14:29:17.863 に答える