【问题标题】:ASP.NET MVC 4 Access to the path App_Data is deniedASP.NET MVC 4 对路径 App_Data 的访问被拒绝
【发布时间】:2015-09-17 12:47:02
【问题描述】:

我在发布网站后遇到以下错误:

System.UnauthorizedAccessExceptionAccess to the path 'C:\inetpub\MySite\App_Data' is denied.

原来是因为它无法访问 App_Data\ASPNETDB.MDF。这是因为它不存在,因为我的网站不使用它。我检查了我的本地机器,有一个包含数据库的 App_Data 文件夹,但它不包含在我在 VS 中的构建中。但是,如果我删除它,它会在我在 VS 中运行该站点时重新创建。

一旦错误似乎自行清除,但每次部署时都会发生此错误,然后该网站就可以正常工作。

代码中的任何地方都没有引用它。如何/为什么在应用程序启动时创建它以及如何停止它?

我将 SimpleMembership 与存储在 SQL Server 数据库中的所有数据一起使用。

【问题讨论】:

标签: c# asp.net-mvc simplemembership unauthorizedaccessexcepti app-data


【解决方案1】:

我以前遇到过这个问题。 当您要发布您的应用程序时,如果 app_data 文件夹是,它不会复制到已发布的文件夹。所以在发布之前,将文件复制到 app_data 文件夹,然后发布您的应用程序... 或者您可以检查存在以在代码中创建:

var folder = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/");
if (!Directory.Exists(folder)) 
    Directory.CreateDirectory(folder);

【讨论】:

  • 您可以在 Global.asax 中使用此代码 => 应用程序启动方法
  • 您的解决方案解决了有关“找不到路径”的不同错误,但在由 Visual Studio 或手动创建后,出现另一个错误“访问被拒绝”,IIS 用户无权访问,但我没有知道为什么。
  • 顺便说一句,我只是尝试将该代码放在 global.asax application_start 中,但它不起作用
【解决方案2】:

尝试进入 App_Data 文件夹属性并添加具有读写权限的 ASPNET 用户

Access to the path 'c:\inetpub\wwwroot\myapp\App_Data' is denied

【讨论】:

  • 但是我的站点不需要部署 App_Data 文件夹?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2017-12-12
  • 1970-01-01
相关资源
最近更新 更多