2012-04-21 10 views
8

Windows XPにIISをインストールしたばかりです。私はアプリを実行しようとするとパス 'c: inetpub wwwroot myapp App_Data'へのアクセスが拒否されました。

、私はエラーを取得:

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

しかし、エラーが解消されない:

Access to the path 'c:\inetpub\wwwroot\myapp\App_Data' is denied. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.UnauthorizedAccessException: Access to the path 'c:\inetpub\wwwroot\myapp\App_Data' is denied.

ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via , the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

Source Error:

Line 70: Protected Sub cmbSettingFiles_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbSettingFiles.SelectedIndexChanged
Line 71: Dim doc As XmlDocument = New XmlDocument()
Line 72: doc.Load(Path.Combine(basePath, cmbSettingFiles.SelectedValue)) Line 74: Dim settingsNode As XmlNode = doc.SelectSingleNode("/settings")

Source File: C:\myapp\install\install.aspx.vb Line: 72

私はこれを行うことによって、格子の許可を試してみました。

これは私のコードと関係がありますか?

どうすれば解決できますか?

EDIT

私のdevのマシン上の問題を解決してきたが、私はまだ自分のWebサーバー上のエラーを取得しています。

ありがとうございました。

+0

私の開発マシンのファイルを使用しているのは唯一のサーバーで、私のサーバーをオンラインでアップロードしても同じことが起こります。 – Smith

+0

私はなぜ賛成投票をするかもしれませんか? – Smith

答えて

8

Try to go to App_Data folder property and add ASPNET user with read and write privileges

参考:それは。これらの構成ファイルを使用して、XMLファイルが別のスレッドによって開かれていないかどうかをチェックして、いくつかを提供し、あなたの問題が解決しない場合は
How to assign correct permissions to App_Data folder of WebMail Pro ASP.NET
Permissions on APP_DATA Folder
ASP/ASP.NET Best way to handle write permissions?

それでもなお問題が解決しない場合は、

+0

こんにちは、新しいエラーを見てもらえますか? Webサーバーで同じエラーが発生しています – Smith

1

正しいユーザーを追加してもよろしいですか?あなたのアプリケーションのアプリケーションプールに設定されているユーザーを確認しましたか?

このエラーは何らかの理由でファイルを読み取れない場合にも発生します。ファイルがロックされているか、別のアプリケーションによって使用されているなどです。これはASP.NET Webアプリケーションなので、ファイルをロックする必要のある操作を実行していないことを確認する必要があります。あなたが一度にあなたのページに1人のユーザしか持たないことを保証できる場合を除きます。

ファイルにアクセスする方法の例を投稿できますか?どのような種類のファイルですか?コードスニペットを使用すると、より正確な回答が得られます。

4

は、ファイルが読み取り専用である場合は、追加のパラメータは、私は似たような状況があったFileStream

using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read)) 
1

に役立つ可能性を検討してください。私はTFSをソースコード管理に使用しています。私が見つけたのは、それがチェックインされたときに、ファイルを読み取り専用にしたということです。これにより、私のサービスで上記のエラーが発生し、読み書きが開かれていました。一度私はそれらを編集のためにチェックアウトした。すべてがうまくいった。私はサービスで読んだだけでそれらを開こうとすることを検討しています。プロダクションサーバーに公開されると、これは問題ではないと私は思います。開発環境のみ。 Entity Frameworkを使用するサービスでも同様の問題が発生しています。 .svcファイルがチェックインされている場合は、EFを使用してデータベースを更新することはできません。

+1

TFSを使用しない多くの理由の1つ以上の理由... –

0

NETWORK SERVICEユーザーに許可を与えてみてください。

1

すべてのアクセス許可を持つASP.net v4.0を追加しようとしましたが、NETWORK SERVICEユーザーを追加しましたが何も助けませんでした。 最後に、DefaultAppPoolユーザーのMODIFY権限をApp_Dataフォルダに追加しました。問題は解決しました。

+0

これは私にとっても役立ちました。新しいサーバーと私の展開パッケージはapp_dataフォルダを作成しませんでした。私はそれを作成し、DefaultAppPoolに変更権を追加しました – Luke

0

パスへのアクセスは、Cを拒否されます。..私のために解決された管理者privilege..This問題でのVisual Studioを実行してください:\のinetpub \ wwwrootに が拒否され、そのセルフサービスのWebサイトができることを示しますインストールされているサーバー上の特定のフォルダにアクセスできません。 これは、場所が存在しないか、認証ユーザーにこの場所への書き込みに適用されるアクセス許可がないために発生します。

0

もう1つの理由は、書き込みしようとしている場所でファイルパスが空であり、ファイルパスが見つからないという理由が考えられます。このエラーが発生する別の理由があります。 Windows Server上のIISを実行している人のために

2

:デフォルトでは

、IISのユーザーはwwwrootフォルダの書き込み権限を持っていません。これはwwwrootIIS_IUSRSユーザーに完全なアクセス許可を与えることで解決できます。

  1. オープンファイルエクスプローラと右wwwrootの上でクリックして、権限を編集するために、「プロパティ」
  2. [セキュリティ]タブをクリックし、「編集...」をクリックしてくださいC:/inetpub/
  3. に行く
  4. 見つけ、 IISユーザーを選択します。私の場合、それはIIS_IUSRS ([server name]\IIS_IUSRS)と呼ばれました。
  5. すべての権限で[許可]チェックボックスをオンにします。
関連する問題