1

私はこれが以前に何度も尋ねられたことを知っています、しかし私は助けなしで何十もの同様の質問を閲覧しました。

このエラーは、asp.net4.0アプリケーションがローカルドライブ上のフォルダーにアクセスしようとしたときに表示されます。

XmlTextReader confReader = new XmlTextReader (filename);           
while (confReader.Read())  // <- error line
{
  // do something
}

私のweb.configには、<Identity Impersonate="true">があります。フルアクセスを割り当てたフォルダの場合:

everyone 
IIS APPPOOL\<custom apppoolname> 
NETWORK SERVICE

アプリケーションをデバッグして、この呼び出しを評価する時計を、犯罪のある行の直前に置くことができます。

System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();

この呼び出しは、現在のユーザーがIIS APPPOOL\<カスタムapppoolname>であることを示しています。

私はSp1を搭載したWindows764ビットを使用しています。私はそれがおそらく愚かなことであることを知っていますが、私はすでにこれにかなりの時間を費やしました。

編集
問題は、正しいフォルダーを指す変数「filename」にありましたが、構成の問題では、ファイル名がありませんでした(つまり、コンテンツが「c:\ data \file」ではなく「c:\data\」でした。 xml ")。Asp.netエラーは、そのフォルダーにアクセスするためのすべての適切なアクセス許可を持っていたため、実際には混乱を招きました。DJKRAZEは私を正しい方向に向けました。

4

2 に答える 2

1

ここで私がチェックすることをお勧めします

where are you declaring filename..? Does the file even exist..?

あなたはそのフォルダへの権利を持っています..? VSを管理者として実行しようとしましたか..?Web アプリ用の仮想ディレクトリのセットアップはありますか..不適切に構成されたものもいくつかあるように聞こえますが、スターター用のコードに基づいて実際に判断することはできませんSystem.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();domain\\username or compuername\\username

それだけでよかっFileName

于 2013-03-22T19:28:18.920 に答える
0

IISには、サーバーマシン内のフォルダーへのパスが、Anonymousユーザーログインでアクセスするための権限を持っている必要があります。

Anonymousユーザーがフォルダにアクセスする権限を持っていることを確認してください。

于 2013-03-22T18:31:27.013 に答える