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

时间:2015-06-09 11:45:04

标签: c# asp.net asp.net-mvc iis internal-server-error

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

  

"由于发生内部服务器错误,无法显示页面"   没别了。

在live上使用相同的IIS 7,并在Error Pages模块中设置为Detailed errors,但仍然相同。 可能是什么原因?

由于

10 个答案:

答案 0 :(得分:52)

我刚收到此错误,这是由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条目,以确认哪些是必需的,哪些会杀死你的应用程序!

答案 1 :(得分:22)

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

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

执行此操作后,您应该从服务器获得更详细的错误消息。

在我的特定情况下,更详细的错误指出我的&lt; defaultDocument&gt;我放置web.config的文件夹级别不允许使用web.config文件的一部分。它说“此配置部分不能在此路径中使用。当部分锁定在父级别时会发生这种情况。默认情况下锁定(overrideModeDefault =”Deny“),或者由overrideMode =”Deny的位置标记显式设置“或遗留的allowOverride =”false“。”

答案 2 :(得分:6)

修改您的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。

答案 3 :(得分:3)

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

httpErrors existingResponse="PassThrough"

当我删除它时,我收到了真正的错误

答案 4 :(得分:1)

就我而言,在Web.config中设置httpErrors等无助于确定问题。

相反,我做了:

  1. 为错误的网站激活“失败的请求跟踪”。
  2. 为HTTP错误350-999(以防万一)配置了跟踪,尽管我怀疑是500。
  3. 再次调用了错误的网址。
  4. 观看了日志文件夹(在我的情况下为“%SystemDrive%\ inetpub \ logs \ FailedReqLogFiles”。)
  5. 在Internet Explorer中打开XML文件之一。

然后,我看到了一个包含详细异常信息的条目。就我而言

  

\?\ C:\ Websites \ example.com \ www \ web.config(592):无法添加类型为“ mimeMap”的重复收集条目,且唯一键属性“ fileExtension”设置为“ .json”

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

答案 5 :(得分:1)

我最终进入了在Azure上运行Web Apps的页面。

  

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

我们遇到了这个问题,因为我们在web.config中进行了applicationInitialization

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

如果在Azure上运行,have a look at site slots交换到生产版位之前,应先预热该版位上的页面。

答案 6 :(得分:1)

当我添加带有许多初始化页面的applicationinitialization模块并将其部署到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出现“无法添加重复的集合条目”错误。

答案 7 :(得分:1)

我使用 Everleap 托管并迁移到 Azure,在那里我收到此错误。 Everleap 部署到他们的服务器需要 web.config ` 部分中的以下内容:

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

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

答案 8 :(得分:0)

对于那些点击此stackoverflow条目的人,因为它对于短语排名很高:

  

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

在我个人的情况下,这个确切的错误消息,我已经打开python 2.7认为我可以使用一些python与我的.NET API。当我尝试从visual studio pro 2013部署一个vanilla版本的API或MVC时,我得到了确切的错误消息。我正在部署到一个azure云webapp。

希望这可以帮助任何有相同经验的人。在我找到suggestion之前,我甚至没想过要关掉python。

答案 9 :(得分:0)

在我在web.config

中评论此行后,它似乎有效
<compilation debug="true" targetFramework="4.5.2" />