我想用 IIS 管理器在 IIS 上上传我自己的 asp.net 网站。但是当我这样做时,我收到以下错误
HTTP 错误 500.19 - Internal Server Error 请求的页面无法访问,因为该页面的相关配置数据无效
模块 IIS Web 核心通知未知处理程序尚未确定错误代码 0x80070005 配置错误由于权限不足,无法读取配置文件配置文件 \\?\C:\Users\Yasso\Documents\Visual Studio 2008\WebSites\WebSite5\web.config
我多次搜索此错误的解决方案,但没有一个解决方案解决了该错误。
我的 IUSR
帐户有问题。我在 web.config
属性的“组或用户名”中看不到此帐户。
问题是什么?
Web.config
文件的 ACL 与目录 中的其他文件不同,并且它不是从它的父目录继承的。我启用了 ACL 继承,一切恢复正常。
如果站点配置为使用 IIS URL Rewrite module 但未安装,也会发生这种情况。
最后,我得到了解决我的问题的方法。 ASP.net 帐户没有出现在 IIS 管理器中,因为我没有在 IIS 中选中它的复选框。要在 Windows 7 中执行此操作,请执行以下步骤:
打开控制面板 点击“程序”链接(不是卸载程序) 点击“打开/关闭 Windows 功能”链接 在弹出窗口中找到“Internet 信息服务 IIS”并展开其节点 展开“万维网服务”节点 展开“Application Development Features”节点 勾选“ASP.NET”复选框 然后点击ok按钮
现在,您将在 IIS 管理器上看到 ASP.net 帐户,默认情况下您将看到 IIS 帐户。现在,您应该将您的 ASP.net 网站从“我的文档”移动到 IIS 有权访问它的另一个位置(即到您计算机上的另一个分区)。现在,从 IIS 管理器浏览您的网站,它应该可以工作了。
非常感谢 Jeff Turner 提供的解决方案。
dism /NoRestart /Online /Enable-Feature /FeatureName:IIS-ASPNET
该消息是说您的配置文件在某种程度上已损坏。但是它也说它实际上无法访问配置文件。所以我会忽略有关损坏/缺乏有效性的原始消息,因为这很可能只是由于缺乏授权而无法读取文件的结果。
它无法读取配置文件的原因是因为运行您的 Web 应用程序的进程没有访问文件/目录的权限。因此,您需要为运行您的 Web 应用程序的进程授予这些权限。
访问权限应该相当简单,即至少是读取,并且根据您的应用程序,可能是写入。
上面,您提到 IUSR 等不在 web.config
的属性中。如果您的意思是 IUSR 未列在文件的安全选项卡中,那么这是一件好事。不想给 IUSR 任何对 web.config 的权限。 IUSR 角色是一个匿名互联网用户。
文件 web.config 应该只能通过您的应用程序访问。
问题是您没有说明您使用的是哪个操作系统和 IIS 版本,因此很难建议采取哪些步骤。
即在 IIS 7.5 中,由于您的 ApplicationPoolIdentity 未分配权限,因此可能会出现您引用的错误消息。您的 Web 应用程序属于应用程序池,因此您需要向运行 Web 应用程序的应用程序池的操作系统帐户授予权限。通常这类似于 NetworkService,但您可能已将其自定义为在特定帐户下运行。没有更多信息,很难为您提供帮助。
我遇到了同样的问题,这是对我有用的解决方案。
IIS 管理器右键单击该网站编辑权限从“安全”选项卡添加用户“IIS_IUSRS”为用户“IIS_IUSRS”授予完全权限将应用程序池的标识设置为“ApplicationPoolIdentity”
对于 Visual Studio (VS) 开发人员:正如 Harvey Darvey、Savage 和 Snives 所暗示的,您的应用程序主机配置可能指向错误的应用程序物理路径。在 /.vs/config/applicationhost.config 中搜索 virtualDirectory 以更改物理路径(如果不正确)。
https://i.stack.imgur.com/1CvTY.png
确保物理路径正确:
https://i.stack.imgur.com/QUFiR.png
顺便说一句,我收到了同样的错误,我的问题很简单:我缺少 .NET Core Hosting Bundle。安装该工具并重新启动服务器后,一切正常。
您可以在此处找到在 Windows 上托管 asp.net 核心的手册:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2
手掌警报:
如果配置文件的路径错误,您也会收到此错误。仔细检查它以确保在 IIS 中正确输入了物理路径。
您需要为本地计算机上的 IIS_IUSRS 分配权限(但您不必为 IUSR 分配权限,事实上即使您明确拒绝权限它也会起作用)。
要分配权限,只需右键单击文件夹并在安全选项卡上确保授予正确的权限,如果用户未列出,则单击“添加”,然后输入 IIS_IUSRS(并确保在“域”下本地选择计算机,或在名称字段中输入 YourLocalComputerName\IIS_IUSRS),然后您就可以开始了。
如果您愿意,您可以代替将权限分配给 IIS_IUSRS 组,而是分配给通常应为“IIS APPPOOL\ 应用程序池名称”的应用程序池。
要解决此问题,请确保您安装了托管捆绑包。
https://i.stack.imgur.com/1xBuF.png
我也发生了同样的事情,当您选择一个网站时,请尝试通过双击 IIS 7 右窗格上的连接字符串来检查这一点。
它会给你一个错误(网络配置文件有问题),因为你使用了 URL 重写规则并且没有安装相应的组件。
安装“Microsoft URL Rewrite Module 2.0 for IIS 7”,这应该可以解决您的问题
这里没有任何东西对我有用,我在另一个 SO 答案中找到了这个命令,它解决了我的问题。只需以管理员身份启动命令提示符并运行以下命令:
run->cmd
run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"
学分:用户 Vicxx
嗯。我已将我的站点/文件移动到另一个文件夹。无需更改 IIS 网站中的路径。
你们现在可能都笑了。
安装 ASP.NET Core 模块
使用以下链接下载安装程序:https://www.microsoft.com/net/permalink/dotnetcore-current-windows-runtime-bundle-installer
我在 Windows Server 2012、IIS 8.5 中执行这些步骤来解决此问题。也应该适用于其他版本。
转到服务器管理器,单击添加角色和功能在角色部分中选择:Web 服务器在安全子部分下选择所有内容(我排除了摘要、IP 限制和 URL 授权,因为我们不使用它们)在应用程序开发下选择 .NET 可扩展性4.5、ASP.NET 4.5 和两个 ISAPI 条目 在功能部分中选择:NET 3.5、.NET 4.5、ASP.NET 4.5 在 Web 服务器部分中选择:Web 服务器(全部)、管理工具(IIS 管理控制台和管理服务) , 窗户
尝试安装本SO中提到的 IIS 的“应用程序开发”子组件
在搜索框中单击“开始按钮”,输入“打开或关闭 Windows 功能”
在功能窗口中,单击:“Internet 信息服务”
点击:“万维网服务”
点击:“应用程序开发功能”
检查(启用)这些功能。我检查了除了 CGI 之外的所有内容。
https://i.stack.imgur.com/ikyC0.png
确保您已将应用程序池设置为正确的框架版本。您还需要确保您的 aspnet、IIS_IUSRS 或 IUSR 用户具有对应用程序目录的读取权限。
为我解决此问题的另一种可能性:
IIS -> 编辑权限 -> 安全选项卡 -> 授予“用户”适当的权限(或 IIS_IUSRS,取决于您的设置)
当我在 web.config 文件和 IIS 网站中都指定了同名的默认文档(如 index.aspx)时,这也发生在我身上。我最终从 IIS 网站上删除了该条目,并保留了 web.config 条目,如下所示:
<system.webServer>
<defaultDocument>
<files>
<add value="index.aspx" />
</files>
</defaultDocument>...
有时,此消息可能缺少 IIS 环境中的组件,例如特定框架或动态压缩等 IIS 功能,而不是 web.config 的权限。
如果是这种情况,解决方案可以是安装和使用 Microsoft 平台安装程序并安装那些缺少的组件 - 您可能必须仔细检查到底缺少什么,因为错误日志和消息没有告诉您。
实际上,任何缺少的模块都可能导致这个问题。就我而言,它是 CORS Module
。因此,请阅读 web.config
并寻找您在其中指定的任何插件模块并检查它是否已安装,或者以其他方式安装它。不幸的是,错误消息根本无助于发现问题。
您需要为您的网站文件夹设置权限或将它们复制到 wwwroot 文件夹:) - 如果设置权限,有 2 种方式:+ 右键单击您的网站文件夹 + 或右键单击 IIS 中的您的网站 => 选择编辑权限并添加权限(IUSR - 默认 iis 用户)祝你好运 ;-)
就我而言,它是由应用程序物理路径指向 IIS 中不存在的文件夹引起的。
https://i.stack.imgur.com/AVxq6.png
映射驱动器出现此问题,IIS 不适用于映射驱动器。只需使用未映射的驱动器。
当我从 prod 复制我的 web.config 文件时遇到了问题,更改了与 prod 无关的所有内容,除了重写为 httpS 的重写规则。
删除了这些规则并运行良好。
很简单,IIS 无权访问您的 web.config。我会先将该网站从您的文档文件夹中取出。验证它是否也具有 r/w 权限。
我也有类似的问题,我通过评论 web.config 文件中的某些部分来修复它。
该项目早期是在 .Net 2.0 中构建和部署的。迁移到 .Net 3.5 后,它开始抛出异常。
决议:
如果您的配置文件包含“
如果您的 web.config 文件中有语法错误或问题,您可能会收到此错误。
对我来说,这是我在 AppSettings 中使用的流浪 ampersand in a URL。
在 IIS 7.5 错误页面上,您会点击页面底部的“查看更多信息”,在这种情况下,您会转到以下 Microsoft 链接:
http://support.microsoft.com/kb/942055
0x80070005 错误代码似乎与权限相关,并按照解决方案 2 中的步骤,方法 2 分配具有相关文件夹权限的正确帐户应该修复它 - 我花了 3 天时间寻找解决方案,直到我遇到它,然后立即工作。
探索您的网站所在的文件夹,您会看到一个额外的文件夹“aspnet_client”删除该文件夹,它会为您工作。
我试过这个我的问题解决了。
如果它对您有用,请将其作为答案,以便其他机构也能得到解决方案。
这些都不适合我,但我终于有了一个适合我的解决方案:
在 web.config 中删除这一行:
<compilation debug="true" targetFramework="4.5"/>
不要删除此行
<compilation debug="true"/>
不定期副业成功案例分享