由于服务器发生内部服务器错误,无法显示该页面

本文关键字:服务器 显示 错误 内部 | 更新日期: 2023-09-27 17:54:43

我已经使用IIS 7在本地机器上成功安装了网站。但是当我将它部署在实时服务器上时,我得到了以下错误:

"发生内部服务器错误,无法显示该页面"什么都没有。

使用相同的IIS 7,并在错误页面模块中设置Detailed errors,但仍然得到相同的结果。原因是什么呢?

谢谢

由于服务器发生内部服务器错误,无法显示该页面

我刚刚得到这个错误,它是由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" />

我认为最好的第一种方法是确保通过web打开详细的错误消息。配置文件,如下:

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed"></httpErrors>
    </system.webServer>
</configuration>

这样做之后,您应该从服务器获得更详细的错误消息。

在我的特殊情况下,更详细的错误指出了我的<defaultDocument>部分的web。配置文件不允许在文件夹级别,我把我的web.config。它说

此配置部分不能在此路径下使用。当该节被锁定在父级时,就会发生这种情况。锁定要么是默认的(overrideModeDefault="Deny"),要么是由位置标记显式设置的(overrideMode ="Deny")或者遗留的allowOverride="false"

修改您的网页。配置显示服务器错误详细信息:

<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中声明了什么。配置和bin文件夹项目中的实际DDL。

我已经修好了。我有以下部分in web.config:

httpErrors existingResponse="PassThrough"

当我删除它时,我得到了一个真实的错误

在我的情况下,在Web中设置httpErrors等。配置不能帮助识别问题。

我改了:

  1. 为出现错误的网站激活"Failed Request Tracing"
  2. 配置了HTTP错误350-999的跟踪(以防万一),尽管我怀疑是500。
  3. 再次调用错误的URL。
  4. 在日志文件夹中观看("%SystemDrive%'inetpub'logs'FailedReqLogFiles"在我的情况下)。
  5. 打开一个XML文件。
然后我看到一个包含详细异常信息的条目。在我的例子中是

'?'C:' sites'example.com'www'web.config(592):无法添加类型为"mimeMap"的重复集合条目,唯一键属性"fileExtension"设置为"。json"

我现在能够解决它并修复错误。在那之后,我再次停用了"失败的请求跟踪"。

我在web.config

中注释了这一行后,它似乎起作用了
<compilation debug="true" targetFramework="4.5.2" />

我最终在这个页面上运行Azure上的Web Apps。

无法显示该页面,因为发生了内部服务器错误。

我们遇到这个问题是因为我们在web.config

中设置了applicationInitialization
<applicationInitialization
    doAppInitAfterRestart="true"
    skipManagedModules="true">
    <add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>

如果在Azure上运行,请查看站点插槽。在交换到生产槽之前,应该在登台槽上预热页面。

当我添加具有大量初始化页面的applicationinitialization模块并将其部署在Azure应用程序上时,我得到了相同的错误。问题原来是我的applicationinitialization模块中的重复条目。我在日志中没有看到任何错误,所以很难排除故障。下面是错误代码的示例:

  <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的"不能添加重复的集合条目"错误。

我使用Everleap托管并迁移到Azure,在那里我得到了这个错误。将Everleap部署到他们的服务器需要在web上执行以下操作。配置的& lt; system.webServer>部分:

<modules>
    <remove name="AspNetCoreModuleV2" />
    <add name="AspNetCoreModuleV2" />
  </modules>

当我注释掉这段代码时,应用程序在Azure上运行。

如果你点击了这个stackoverflow条目,因为它在短语中排名很高:

无法显示该页面,因为发生了内部服务器错误。

在我个人的情况下,这个确切的错误消息,我已经打开了python 2.7认为我可以使用一些python与我的。net API。然后,当我试图从visual studio pro 2013部署API或MVC的香草版本时,我得到了确切的错误信息。我正在部署一个azure云web应用。

希望这对有相同经历的人有所帮助。我甚至没有想过要关闭python,直到我发现了这个建议。

相关文章: