如何解决IIS7.0上的“HTTP错误500.19 – 内部服务器错误”
什么原因导致这个错误,我该如何解决?
详细的错误信息
模块IIS Web Core
通知BeginRequest
处理程序尚未确定
错误代码0x8007052e
configuration错误无法使用虚拟目录密码以用户pipe理员身份本地login到C:\ inetpub \ wwwroot
configuration文件不可用(configuration隔离)
请求的urlhttp://192.168.0.3:80/
物理pathC:\ inetpub \ wwwroot
login方法尚未确定
login用户尚未确定
configuration来源
<application path="/" applicationPool="PS-Extranet"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" userName="administrator" password="[enc:AesProvider:PrISRz2ggJH4bV46ktObfCSh91Y/yF9pAoLmH7eCnj0=:enc]" /> </application>
看起来像你用于你的应用程序池的用户帐户没有权限的网站目录,所以它不能从那里读configuration。 检查应用程序池,看看它被configuration为运行的用户。 检查目录,看看该用户是否有适当的权利。 当你在这个时候,检查事件日志,看看IIS是否在那里logging了更详细的诊断信息。
我有同样的问题,但理由是不同的。
在我的web.config中有一个URL重写模块规则 ,我还没有安装URL重写模块。 我安装了url重写模块后,这个问题就解决了。
在更改我们的域pipe理员密码后,我们得到了这个错误。
我最终发现,在IIS Manager-> Basic Settings-> Connect as …的应用程序中,它设置为专门使用域pipe理员帐户而不是传递身份validation(谁知道为什么)。
最后,我得到解决我的问题。 该asp.net帐户不会出现在IISpipe理器中,因为我没有检查它的checkbox在IIS中执行此操作在Windows 7中按照步骤
- 打开控制面板
- 点击“程序”链接(不是卸载程序)
- 点击“打开/closures窗口function”链接
- 在popup窗口中find“Internet Information Services IIS”并展开其节点
- 展开“万维网服务”节点
- 展开“应用程序开发function”节点
- 选中“ASP.NET”checkbox
- 然后点击确定button
现在,您将在IISpipe理器上看到Asp.net帐户,默认情况下您会看到IIS帐户现在,您应该将您的asp.net网站从“我的文档”移动到另一个有权访问的位置(您的任何分区计算机)现在从IISpipe理器浏览你的网站,它应该工作。
在Windows 10上,我必须在Internet Information Services
下安装ASP.NET 3.5
和ASP.NET 4.6
(其他框自动检查自己):
你需要做的一步:
run->cmd run "c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i"
而已
今天经历了这个问题并解决了它。 有人为IIS中的“默认网站”设置了“path凭据”,以便以特定用户身份运行。 由于密码过期或只是例行更改,同一用户更改了密码。 设置“默认网站”作为“应用程序用户”通过基本设置选项连接解决了我
你试探性地改变你的NT密码。 input到IIS右键单击您的应用程序 – >pipe理应用程序 – >高级设置 – >物理path凭据。
祝你好运
得到这个工作好,但不是基于上述build议。 我的情况是,得到在域中的Windows 2008服务器上运行iis7的500错误。 只是在域中添加了一个新用户,基本上允许读取/执行访问虚拟目录或文件夹。 确保将虚拟文件夹>基本设置>连接为>path凭据设置为具有读取/ xecute访问权限的用户。 您可以testing设置,authentication和授权都应该工作。 干杯!
在我的情况下,更改文件夹的解决scheme后出现此错误。
我通过布莱恩到我的项目属性解决问题,并重新创build我的虚拟目录。
右键单击项目>属性> Web>在服务器部分点击“创build虚拟目录”
它会显示一条消息,说虚拟目录是在另一个地方创build的,它会改变它
现在我有这个错误,并解决它。 您的url可以与创build的虚拟目录匹配。
你必须检查虚拟目录,在我的例子中我发现applicationhost.config
下一行:
<application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/admin/roles" physicalPath="C:\..." /> </application>
我试图打开页面的AdminController
和Roles
行动的URL( http://localhost/admin/roles
),并得到这个错误。
是有相同的错误,并修复IIS应用程序池中的凭据没有帮助。 我终于通过select我的网站在默认网站,高级设置 – >物理path证书 – >特定用户,并重新进入应用程序池用户的凭据,然后重新启动IIS,错误消失,我的网站来成功。
默认的网站也需要pipe理:
1.在默认网站 – > basicSettings – >连接为,将其更改为正确的用户。
2.更改与defaultWebSite相关的applicationPool的标识
g.luck
对于其他人,我得到了一个类似的错误信息,因为试图在.Net 2应用程序池中运行.Net 4应用程序。 更改应用程序池的.Net FX版本为我解决了这个问题。
我有一个类似的错误安装PHP 5.3.3与错误代码0x80070020有一个方向在我的www根目录(不是标准的根目录)web.config几行。
这个解决scheme虽然简单,但工作完美。 我只是删除了web.config文件,现在一切正常。 我花了几个小时尝试其他解决scheme无济于事。
如果有人认为这是愚蠢的,请让我知道。 如果其他人花费了相同的时间拉出头发,试试看(当然备份文件后)
关于FEQ
对我来说似乎没有一个权限问题 – 试图让IIS_IUSRS帐户完全控制Web服务中的所有内容,只是为了看看是否是原因。 修复竟然是在IIS中重新创build托pipeWeb服务的应用程序(即实际的.svc)
如果你试图访问joomlapipe理员面板,只是用户名和密码问题! 您只需更新joomla数据库中的jos_user。
转到您的joomla网站目录,并打开一个configuration文件注释或笔记本的configuration.php来显示您的joomlapipe理员网站使用的数据库名称。 你必须find一个行:
public $user = 'joomlauser251'; //MySQL username
在我的情况下, joomlauser251
是我的数据库名称。
login到你的mysql:
mysql -uyourusername -pyourpassword
为你的joomlaselect数据库:
use joomlauser251;
更改admin的密码:
UPDATE jos_users SET password=MD5('NewPassword') WHERE username='admin';
然后重试再次访问。
就这样 !!!
在我的情况下,我发现在虚拟目录默认情况下在applicationHost.config中的旧域帐户密码的引用。
所以很容易find文件“applicationHost.config”在Windows中 – > System32 – > inetsrv – >configuration1.备份“applicationHost.config”到另一个文件名2.打开文件“applicationHost.config”清除数据并保存3.打开浏览器和打电话给url内部网站,说完了。
如果您正在使用新的专用用户帐户…还值得检查该帐户的密码是否已过期,因为这也会导致此500.19权限问题。
对我而言,我需要在“添加/删除Windowsfunction”中的.Netfunction下启用Http Activation
当我得到了500.19,我给IIS_IUSRS
充分的访问权限提到的web.config和项目的文件夹。 这解决了这个问题。
你可以通过授予权限
- 右键点击文件夹/文件
- select标签“安全”
- 添加用户
IIS_IUSRS
– 不要忘记我在USRS面前,不要写“e”,如USERS
ASP.Net应用程序预先连接web.config中的处理程序部分。 默认情况下,它被设置为在IIS中的function委托中只读。 看一下IISpipe理器
1.转到IISpipe理器并单击服务器名称
2.转到pipe理部分 ,然后单击function委派 。
3.select应该设置为只读的Handler Mappings 。
4.更改值以读取/写入 ,现在可以解决问题
我还有一件事要说。 使用相同的HTTP错误代码,仍然可能有几个不同的错误,因为其中一个已经发布在这里的原始问题的描述。 例如:在我编辑ASP.NET项目的Web.Config
文件之后,
错误代码0x8007000d
“只允许一个<configSections>元素,它必须是根<configuration>元素的第一个子元素”
正如它所说的,您不能在Web.Config
文件的<configSections>
部分之前插入自己的XML内容。 当我在<configSections>
的结束标记之后插入片段后,它工作得很好。
我的网站的正确path没有在IIS中指定。
我的解决办法是,
- 只要删除损坏的文件夹。
- 然后再重新创build文件夹。
看来,如果在IIS安装之前创build了损坏的文件夹。 如果您再次创build文件夹,它将正常工作。
对于ASP.NET Core网站,如果您没有安装HttpPlatformHandler模块,也会出现此类一般错误,请参阅此答案以获取更多详细信息。
从Visual Studio 2013升级到2015年,我得到了这个错误。经过一些search和尝试各种修复后,我发现这个问题可以通过从web.config中删除以下来解决:
<staticContent> <mimeMap fileExtension=".less" mimeType="text/css" /> </staticContent >
显然静态内容现在被弃用?
资源
编辑1
这种方式阻止IIS在部署程序时服务.json文件。 如果你这样做,你应该重新添加.json(应用程序/ JSON)到您的网站在IIS中的MIMEtypes。 这里是一些更多的信息: http : //www.iis.net/configreference/system.webserver/staticcontent/mimemap
编辑2
我注意到,在我的情况下,上述编辑1解决scheme只能暂时工作。 一旦我重新部署条目被删除。 所以,我把mimeMap XML移到了Web.Release.config
。 现在工作正常。
卸载运行IIS的计算机上的Windows Server Update Services(WSUS)后,出现此错误。 显然,卸载WSUS可能会破坏服务器上的IISconfiguration,使得安装在同一服务器上的其他Web应用程序不可用。
我在这里find了解决问题的办法。
在我的情况下,键值在Web.config
文件中是不正确的:
<defaultDocument> <files> <add value="Portal.htm" /> </files> </defaultDocument>
当我将其值更改为“Portal.html”它的工作。