
下記のエラーメッセージが表示されてアプリケーションが動作しないのですが、
Windowsって、環境変数TEMPにアクセスエラーでファイルが書き込めない場合ってあるものなのでしょうか?
また、何が原因でこのような状態になるのでしょうか?
エラー:
TEMP ディレクトリへのアクセスが拒否されました。XmlSerializer を実行している ID '{0}' に、TEMP ディレクトリへのアクセスに必要なアクセス許可がありません。CodeDom では、プロセスが使用しているユーザー アカウントを使用してコンパイルしようとするため、ユーザーが TEMP ディレクトリへのアクセス権を持っていない場合、コンパイルはできません。TEMP ディレクトリの場所を見つけるには、Path.GetTempPath() API を使用してください。
とのエラーが発生します。
環境
.NET Framework2.0(C#/WinForm)
Windows7
補足
TEMPの内容
Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」
となっており、問題は無さそうです。
テストプログラムのエラー(添付にファイル作成)
System.UnauthorizedAccessException: パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。
以上
No.1ベストアンサー
- 回答日時:
エラーメッセージを見る限り、
> 環境変数TEMPにアクセスエラーでファイルが書き込めない
ではなくて、TEMPフォルダに書き込みできないってエラーでは?
> Path.GetTempPath()で取得すると「C:\Users\hogehoge\AppData\Local\Temp\」
のTEMPフォルダを右クリック-[プロパティ]の「セキュリティ」タブで、ID'{0}'というユーザー(?)からの書き込みを許可しているかどうか確認してみては?
見た感じ、ユーザー名:hogehogeのフォルダですから、同じレベルのユーザーにはアクセス許可無い場合はあるかも。

No.3
- 回答日時:
>パス 'C:\Users\hogehoge\AppData\Local\Temp\null.txt' へのアクセスが拒否されました。
C:\Users\hogehoge\AppData\Local\Temp\null.txtを作成したりオープンしたり出来るのは「ユーザー名hogehogeのユーザーのみ」です。
テストプログラムが「hogehoge」以外のユーザーで実行されている場合は、一切、アクセス出来ません。
XmlSerializerも同様で、XmlSerializerを実行しているユーザーがhogehogeじゃない(ID '{0}'のユーザー)場合は、コンパイルできません。
「環境変数TEMPにアクセスできない」のではなくて「環境変数TEMPで示されるフォルダにアクセスできない」のです。
ぶっちゃけ「C:\TEMP\ってフォルダを作って、そのフォルダを、誰でも読み書き可能にして、環境変数TEMPの値をC\TEMP\にしておく」のが、一番楽です。
大昔の古いアプリの中には、環境変数TEMPで示すフォルダの「パス名の長さ」が「32文字以内」である事を想定しているアプリもあるんで「C:\Users\hogehoge\AppData\Local\Temp\」などと言う長いパス名が設定してあったら、色々と問題が起きます。
No.2
- 回答日時:
Vistaが出回りだした頃、ユーザーアカウント制御を無効にするとTEMPにアクセスできなくなるという例がいくつかありましたが……。
Win7で同じかどうかは分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダーのアクセス許可はど...
-
システムイメージを別のHDDに移...
-
Win2000Serverで消すことが出来...
-
HDD内のファイル(動画)にアクセ...
-
HDDにアクセスできない
-
Googleアカウントが削除されて...
-
Excelの「アクセシビリティ 検...
-
DOSバッチで文字数カウント
-
ドナルドウズを消す。
-
エクセルでの計算式もしくはシ...
-
コマンドプロンプトからファイ...
-
コマンドプロンプトで出来ること
-
コマンドプロンプトで完全削除
-
Projector Skeletonという謎の...
-
ユーザーファイルのAppDa...
-
windows (ウィンドウズ) の 「...
-
ワードやエクセルのファイル名...
-
iPhoneのメモ帳が重いです。メ...
-
"autorun.inf" を削除する方法
-
Win7ショートカットアイコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「グループ名またはユーザー名...
-
Cドライブ全てをEveryoneフルコ...
-
一部のファイルにアクセスでき...
-
フォルダのアクセス権変更,監...
-
環境変数TEMPを使用するアプリ...
-
フォルダーの中にフォルダーを...
-
このファイルの場所へアクセス...
-
HDDにアクセスできない
-
フォルダーのアクセス許可はど...
-
止められないサービスを止める方法
-
Everyoneフルコントロールでア...
-
外付けHDDのアクセス制限を元に...
-
ファイル共有で2階層までしか...
-
システムイメージを別のHDDに移...
-
拡張属性とは何でしょうか?【X...
-
USBブートで内蔵HDDにアクセス...
-
NTFSアクセス権と共有アクセス...
-
外付HDD System Volume Inf...
-
外付けHDDのアクセス権限と読み...
-
アクセスできないファイルに×印
おすすめ情報