2011-08-13 5 views
4

ローカルマシン(Windows 7)でASP.Netプロジェクト(フレームワーク2.0)を開発しています。 IIS 7.5はローカルWebサーバーです。Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)はASP.Netプロジェクトで空の文字列を返します

プロジェクトをローカルで実行すると、Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)は空の文字列を返します。

私は、この新しいdevマシンをセットアップしたときにこの問題が発生したため、少し愚かで挫折しましたが、ソリューションを覚えていないため、グーグルで解決策を見つけることができません。 XPを実行している開発チームの他の人は、この問題に遭遇しません。

私はC:\Users\DefaultAppPool\AppData\Local\Microsoft\Windows\Temporary Internet Filesの返品を期待しています。

この設定が問題になるかどうか、または環境変数をどこかに設定できるかどうかは不明です。

ありがとうございます、Jeff

+0

appPoolのIDは何ですか? –

答えて

5

これはアクセス許可の問題になると確信しています。 IIS7には、AppPoolIdentityという新しい「ユーザー」があり、これはアプリケーションプールの既定のIDです。このユーザーは、IIS 6の既定値よりもはるかに低いアクセス許可を持っています。

問題を再現できますが、LocalSystemまたは管理者権限を持つ特定のユーザーとしてApp.Safeを設定してEnvironment.SpecialFolder.InternetCacheを取得する必要があります私が問題のフォルダを見て、それがパーミッションであるかどうかを調べるときには意味があります。

高い権限を持つIISアプリケーションプールを実行することにはセキュリティ上の問題があることに注意してください。

+0

お返事ありがとうございます。それは役に立ちました。私は、AppSafeIdentityをLocalSystemに設定することでフォルダパスを取得できることも発見しました。 – JWhitsitt

+0

DefaultAppPoolにC:\ Users \ DefaultAppPool \ AppData \ Local \ Microsoft \ Windows \ Temporaryインターネットファイルフォルダへの完全なアクセス許可を与えると、Environment.SpecialFolder.InternetCacheはまだ空を返しますか? – JWhitsitt

+0

おそらくそのフォルダとその上位のフォルダの組み合わせです。私はラップトップ(Windows 7でも同様)のフォルダのアクセス許可を変更することに慎重にしたい、私のInternetCacheフォルダはC:¥Windows¥system32¥config¥systemprofile¥AppData¥Local¥Microsoft¥Windows¥Temporary Internet Files –

関連する問題