我已为特定文件夹启用了基本身份验证,并禁用了匿名用户。我还创建了用户,但是我在浏览器上收到“由于发生内部服务器错误,无法显示该页面。”消息。以下是失败请求跟踪的日志。我研究了这个问题几个小时,但还是没能解决。
更新:当我访问任何不存在的页面时,都会触发相同的错误,例如http://144.144.144.144/asdasoidjasoida
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type='text/xsl' href='freb.xsl'?>
<!-- saved from url=(0014)about:internet -->
<failedRequest url="http://144.144.144.144:80/admin/"
siteId="1"
appPoolId="DefaultAppPool"
processId="820"
verb="GET"
authenticationType="NOT_AVAILABLE" activityId="{8000000E-0002-FF00-B63F-84710C7967BB}"
failureReason="STATUS_CODE"
statusCode="500.19"
triggerStatusCode="500.19"
timeTaken="0"
xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb"
>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>0</Level>
<Opcode>1</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2016-09-29T15:24:04.662Z"/>
<Correlation ActivityID="{8000000E-0002-FF00-B63F-84710C7967BB}"/>
<Execution ProcessID="820" ThreadID="3756"/>
<Computer>OWNEROR-9DTV6I9</Computer>
</System>
<EventData>
<Data Name="ContextId">{8000000E-0002-FF00-B63F-84710C7967BB}</Data>
<Data Name="SiteId">1</Data>
<Data Name="AppPoolId">DefaultAppPool</Data>
<Data Name="ConnId">1610612749</Data>
<Data Name="RawConnId">0</Data>
<Data Name="RequestURL">http://144.144.144.144:80/admin/</Data>
<Data Name="RequestVerb">GET</Data>
</EventData>
<RenderingInfo Culture="el-GR">
<Opcode>GENERAL_REQUEST_START</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>0</Level>
<Opcode>33</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2016-09-29T15:24:04.662Z"/>
<Correlation ActivityID="{8000000E-0002-FF00-B63F-84710C7967BB}"/>
<Execution ProcessID="820" ThreadID="3756"/>
<Computer>OWNEROR-9DTV6I9</Computer>
</System>
<EventData>
<Data Name="ContextId">{8000000E-0002-FF00-B63F-84710C7967BB}</Data>
<Data Name="HttpStatus">500</Data>
<Data Name="HttpSubStatus">19</Data>
<Data Name="FileNameOrURL"></Data>
</EventData>
<RenderingInfo Culture="el-GR">
<Opcode>GENERAL_SEND_CUSTOM_ERROR</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="WWW Server" Guid="{3A2A4E84-4C21-4981-AE10-3FDA0D9B0F83}"/>
<EventID>0</EventID>
<Version>1</Version>
<Level>0</Level>
<Opcode>2</Opcode>
<Keywords>0x0</Keywords>
<TimeCreated SystemTime="2016-09-29T15:24:04.662Z"/>
<Correlation ActivityID="{8000000E-0002-FF00-B63F-84710C7967BB}"/>
<Execution ProcessID="820" ThreadID="3756"/>
<Computer>OWNEROR-9DTV6I9</Computer>
</System>
<EventData>
<Data Name="ContextId">{8000000E-0002-FF00-B63F-84710C7967BB}</Data>
<Data Name="BytesSent">222</Data>
<Data Name="BytesReceived">466</Data>
<Data Name="HttpStatus">500</Data>
<Data Name="HttpSubStatus">19</Data>
</EventData>
<RenderingInfo Culture="el-GR">
<Opcode>GENERAL_REQUEST_END</Opcode>
</RenderingInfo>
<ExtendedTracingInfo xmlns="http://schemas.microsoft.com/win/2004/08/events/trace">
<EventGuid>{D42CF7EF-DE92-473E-8B6C-621EA663113A}</EventGuid>
</ExtendedTracingInfo>
</Event>
</failedRequest>
服务器规格为:64 位 Windows 2012 R2,带 IIS 8.5。有人知道发生了什么吗?提前谢谢。
答案1
看来 web.config 中的以下几行导致了问题。仍然不知道为什么。
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="C:\inetpub\wwwroot\notfound.htm" responseMode="File" />
</httpErrors>
答案2
IIS 在每个站点的根目录中存储一个 web.config 文件(例如,C:\Inetpub\wwwroot\web.config)。该文件可能已损坏,或者缺少标签?
我以前遇到过这个问题,尤其是在尝试通过 GUI 重写 URL 时。我发现最简单的解决方法是创建一个新网站,然后复制旧网站的内容 -除了 ApplicationHost.config 文件和/或 Web.config 文件- 到新网站。(如果您使用应用程序池,请不要忘记通过安全选项卡授予应用程序池访问新网站的权限)。然后保留 web.config(和 ApplicationHost.config,如果有)的备份。
有关 IIS 中 500.19 的更多信息,请参见:
如果重新创建网站不能解决问题,那么您可能需要检查应用程序池是否具有对网站目录的读取和执行权限(如果需要,也需要写入权限)。我通常这样做:
- 在文件资源管理器中,转到顶级站点目录,右键单击,然后选择属性(例如,C:\Inetpub\wwwroot 的属性)
- 转到“安全”选项卡并单击“编辑”,然后单击“添加”。
- 如果您的机器在域中,请单击“位置”并选择机器(而不是域树),然后单击“确定”。
- 在“检查名称”按钮旁边的文本框中输入:“IIS AppPool\DefaultAppPool”,然后按“检查名称”。如果输入正确,“IIS AppPool”将消失,DefaultAppPool 将带有下划线。
- 至少授予读取和执行权限,然后单击“确定/应用”。
尝试再次访问该网站(执行重置事先不会受伤)。