【问题标题】:Access denied creating App_Data subdirectory when access has been allowed允许访问时访问被拒绝创建 App_Data 子目录
【发布时间】:2015-09-25 15:18:05
【问题描述】:

TLDR 见下一行

在尝试启用角色时,我遇到了一个又一个的障碍。我一整理出来,还有一个。我已经束手无策了。

我在 VS2015 Enterprise 和 MSSQLServer 2014 中使用代码优先迁移。我添加了 express 标记,因为它在错误消息中。我的网站由 smarterasp.net 托管。

这些是我最新的故障排除步骤,可引导我到达现在的位置:

我已经离开了:
"The certificate chain was issued by an authority that is not trusted" when connecting DB in VM Role from Azure website

致此:
How can I create a local user profile for the anonymous user of an ASP.Net MVC application under IIS 7?

到这里:

访问被拒绝创建 App_Data 子目录 说明:出于安全原因,身份“NETWORK SERVICE”(此 Web 应用程序在其下运行)无权在应用程序根目录中创建 App_Data 子目录。 ASP.NET 将用于服务(例如 Membership 和 Profile)的 Microsoft SQL Express 数据库文件存储在应用程序的 App_Data 子目录中。

我已包含此页面部分的屏幕截图:

现在那个错误页面上的说明已经很清楚了,我已经按照 MSDN 的说明进行了操作,我什至将它设置为允许修改(在黑暗中疯狂刺伤)

所以我的:

  1. Visual Studio 文件夹授予 NETWORK SERVICE 读取权限。
  2. Project Name(在Visual Studio/Projects/Project Name下)文件夹提供NETWORK SERVICE修改、读取和执行、读写权限。
  3. 同样,App_Data 文件夹也是如此。

在我的网络配置中,我有:

<roleManager
    enabled="true"
    cookieName=".ASPXROLES" cookieTimeout="30"
...
    defaultProvider="AspNetSqlRoleProvider">
</roleManager>

<entityFramework>
<providers>
  <provider invariantName="System.Data.SqlClient" 
    type="System.Data.Entity.SqlServer.SqlProviderServices, 
        EntityFramework.SqlServer" />
</providers>

我不知道我做错了什么。
任何帮助表示赞赏。



编辑
我正用头撞墙。

我认为这是问题所在,在 App_Data 文件夹上检查了一个只读属性,当我进入此设置以及其中的 mdf 和日志文件时,它们都具有读写访问权限和完全控制权用户帐户。

我已禁用从父文件夹继承。
尝试从父文件夹传播继承的属性。 我已经检查了我的服务器是否允许远程连接以及我可以在 IIS、SqlServer、文件夹中的任何位置找到的任何权限,这让我发疯了。

我无法取消选中此只读属性。

【问题讨论】:

  • 您是否在使用 IIS Express 的本地计算机上遇到错误?或者在您的本地机器上使用 IIS ?还是在您的 smarterasp.net 主机上?
  • 您正在更改主机上的文件夹权限吗?通过远程桌面什么的?我不知道 smarterasp.net。此外,我相信如果您想允许创建错误消息中提到的子目录,则需要编辑父文件夹的权限。
  • 我相信你刚刚解决了这个问题!不幸的是,您刚刚撞到了另一个……您可能应该问另一个问题。 app_data 目录中的 SQL 服务器文件可能是特定于您的主机的文件,但 SQL 服务器通常独立于 ASP.NET 运行,具有不同的文件夹。
  • 好的,您确定要首先使用 App_Data 目录中的 SQL express 文件作为您的数据库吗?从我在 smarterasp.net 网站上看到的情况来看,托管附带完整的 SQL Server 实例,而不仅仅是 SQL Server express

标签: asp.net-mvc-5 visual-studio-2015 sql-server-express sql-server-2014


【解决方案1】:

当我注释掉它时它会起作用:

<authorization>
    <allow roles="*" />
....
</authorization>

它要去的页面可能是我实际需要做的事情的误导。正如我所读到的,上传您的应用数据并不好。

当我把它拿出来时它就起作用了。我需要修复我的授权,以便用户可以登陆网站并登录,而不是完全锁定为管理员。没有规定允许匿名用户实际登陆该网站。

因为没有规定可以在没有身份验证的情况下登陆该站点,所以它正在寻找本地数据库。

我要感谢 https://stackoverflow.com/users/734151/personne3000 将我引导到主机服务器文件,因为我忽略了在服务器站点上检查它们并且只通过 filezilla 进行检查,那里有两个不同的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 2017-10-11
    • 1970-01-01
    • 2011-09-27
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    相关资源
    最近更新 更多