无法显示页面,因为服务器发生内部服务器错误
Posted
技术标签:
【中文标题】无法显示页面,因为服务器发生内部服务器错误【英文标题】:The page cannot be displayed because an internal server error has occurred on server 【发布时间】:2015-08-24 05:08:05 【问题描述】:我已经使用 IIS 7 在本地机器上成功安装了网站。 但是当我将它部署在实时服务器上时,出现以下错误:
“由于发生内部服务器错误,无法显示页面” 没有别的了。
在现场使用相同的 IIS 7,并在错误页面模块中设置为 Detailed errors
,但仍然相同。
可能是什么原因?
谢谢
【问题讨论】:
【参考方案1】:我刚刚收到此错误,它是由 web.config 中重复的静态内容 MIME 类型引起的
仅在静态文件上返回此错误 - 例如图像、css、js 文件都显示此错误(文本本身,响应中没有其他 html 或文本)。
调试方法是查看静态内容下的 Web 配置。这里我们加载了一个 json 文件扩展名。这在 IIS7 上是必需的,但如果在 IIS8 上使用会终止应用程序,因为 json 现在已在服务器级别预加载。
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
因此,解决方案是一次删除任何这些 mimeType 条目,以确认哪些是需要的,哪些会杀死您的应用!
更新
实际上最好的解决方案是由评论者在这里提供的。您可以删除然后添加,无论它是否已经定义,它都将始终有效。像这样:
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
【讨论】:
同样适用于.woff等类型。 我确定这不适用于我,但我删除了 staticContent 中的所有内容,我终于可以看到真正的错误消息!谢谢。 在设置之前清除条目应该可以防止冲突我认为最好的第一种方法是确保通过 web.config 文件打开详细的错误消息,如下所示:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed"></httpErrors>
</system.webServer>
</configuration>
完成此操作后,您应该会从服务器收到更详细的错误消息。
在我的特定情况下,更详细的错误指出我的 web.config 文件的 <defaultDocument>
部分在我放置 web.config 的文件夹级别是不允许的。它说
此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或由具有 overrideMode="Deny" 或传统 allowOverride="false" 的位置标记显式设置。 "
【讨论】:
这帮助我确定了问题 这也帮助我确定了西蒙的问题 这对我也有帮助,我在修改您的 web.config 以显示服务器错误详细信息:
<system.web>
<customErrors mode="Off" />
</system.web>
您可能还需要删除/注释掉以下 httpErrors 部分
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL" />
<remove statusCode="500" />
<error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL" />
<remove statusCode="403" />
<error statusCode="403" path="/Error/Error403" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
根据我的经验,如果您直接遇到服务器错误,这可能是由程序集版本不匹配引起的。
检查 web.config 中声明的内容以及 bin 文件夹项目中的实际 ddl。
【讨论】:
在我的例子中,我将一个网站从 II7 迁移到 IIS8.x Win 2012 服务器,看起来 httpErrors 的格式在两个服务器之间可能略有不同。注释掉 httpErrors 部分为我解决了这个问题。从来自 IIS7.x 服务器的 web.config 中删除 httpErrors 部分后,我从 IIS8.5 GUI 重新创建了自定义错误。【参考方案4】:我已经修好了。
我有以下部分in web.config
:
httpErrors existingResponse="PassThrough"
当我删除它时,我得到了一个真正的错误
【讨论】:
【参考方案5】:在我的例子中,在 Web.config 中设置 httpErrors
等并不能帮助识别问题。
相反,我做了:
-
为出现错误的网站激活“失败的请求跟踪”。
为 HTTP 错误 350-999(以防万一)配置了跟踪,虽然我怀疑是 500。
再次调用了错误的 URL。
在日志文件夹中观看(在我的例子中是“%SystemDrive%\inetpub\logs\FailedReqLogFiles”)。
在 Internet Explorer 中打开了其中一个 XML 文件。
然后我看到了一个包含详细异常信息的条目。在我的情况下是
\?\C:\Websites\example.com\www\web.config (592) : 无法添加类型为“mimeMap”且唯一键属性“fileExtension”设置为“.json”的重复集合条目
我现在能够解决它并修复错误。之后,我再次停用了“失败的请求跟踪”。
【讨论】:
【参考方案6】:我在 web.config 中评论了这一行后,它似乎工作了
<compilation debug="true" targetFramework="4.5.2" />
【讨论】:
在这种情况下,我相信您可以从 IIS 部分下的 Windows“程序和功能”中简单地安装该框架版本(或更高版本)。【参考方案7】:我最终在此页面上运行了 Azure 上的 Web 应用程序。
由于发生内部服务器错误,页面无法显示。
我们遇到了这个问题,因为我们在 web.config 中进行了 applicationInitialization
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
如果在 Azure 上运行,have a look at site slots。在将暂存槽中的页面交换 到生产槽之前,您应该预热它。
【讨论】:
【参考方案8】:当我添加具有大量初始化页面的应用程序初始化模块并将其部署到 Azure 应用程序时,我遇到了同样的错误。这个问题原来是我的应用程序初始化模块中的重复条目。我在日志中看不到任何错误,因此很难排除故障。以下是错误代码示例:
<configuration>
<system.webServer>
<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="true">
<add initializationPage="/init1.aspx?call=2"/>
<add initializationPage="/init1.aspx?call=2" />
</applicationInitialization>
</system.webServer>
确保没有重复的条目,因为这些将被视为不允许的重复键,并会导致 web.config 出现“无法添加重复的集合条目”错误。
【讨论】:
【参考方案9】:我使用 Everleap 进行托管并迁移到 Azure,我收到了这个错误。 Everleap 部署到他们的服务器需要 web.config `
<modules>
<remove name="AspNetCoreModuleV2" />
<add name="AspNetCoreModuleV2" />
</modules>
当我注释掉这段代码时,该应用程序在 Azure 上运行。
【讨论】:
【参考方案10】:对于那些因为它在短语中排名很高而点击此 *** 条目的人:
由于发生内部服务器错误,页面无法显示。
在我个人的情况下,我看到了这个确切的错误消息,我打开了 python 2.7,认为我可以在我的 .NET API 中使用一些 python。然后,当我尝试从 Visual Studio Pro 2013 部署 API 或 MVC 的香草版本时,我收到了确切的错误消息。我正在部署到 azure cloud webapp。
希望这对有相同经历的人有所帮助。我什至没想过要关闭 python,直到我发现这个 suggestion。
【讨论】:
以上是关于无法显示页面,因为服务器发生内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
500.19 - 内部服务器错误 - 无法访问请求的页面,因为该页面的相关配置数据无效
500 - 内部服务器错误.您查找的资源存在问题,因而无法显示.