1

起動時に一部の構成を読み取るためだけに使用される App_Data に格納された XML ファイルがあります。コード内で開こうとすると、「パスへのアクセス ... が拒否されました」というメッセージが表示されます。

その理由と解決方法を理解するのに苦労しています。理論的には、ファイル (およびディレクトリ) のアクセス許可を変更する必要があると思いますが、何も変更されていません。

もう少し背景を説明するには: 1. プロジェクトにバンドルされているファイルであるため、VS2008 によって作成されたセットアップによって、インストール中に正しい場所に書き込まれます。ASP.NET アプリケーションがアクセスできるように、インストール後に異常なことを行う必要はないと思いました。2.これをローカルで公開しようとしたとき、問題はありませんでした。- これはテスト用の Windows 2003 サーバーのみです。3. IIS の有効なユーザーを理解するための簡単なページを実行しました。これは NT AUTHORITY\NETWORK SERVICE です。このユーザーにこのファイルへの「フル アクセス」を許可しようとしましたが、それでも機能しません。

それを開くコードは簡単です。

FileStream fs = new FileStream(Server.mapPath(s), FileMode.Open);

s は '~/App_Data/myfile.xml として定義されます

フルパスとファイル名を(例外から)コピーして貼り付け、「dir」を試してみましたが、実際に存在しています(たとえば、タイプミスを回避するため)。

また、いくつかの提案に従って aspnet_regiis.exe /s を実行してみました。

これは私を困惑させました。

4

1 に答える 1

3

実際、私はそれを見つけたと思います。次のようにファイルを開く必要がありました。

new FileStream(Server.MapPath(s), FileMode.Open, FileAccess.Read);

于 2010-01-24T21:38:41.690 に答える