C# 无法显示该页,因为服务器上发生内部服务器错误
我已使用IIS 7成功地在本地计算机上安装了网站。 但当我将其部署到live server上时,出现以下错误: “由于发生内部服务器错误,无法显示页面” 没有别的了 在live上使用相同的IIS 7,并在错误页面模块中设置为有C# 无法显示该页,因为服务器上发生内部服务器错误,c#,asp.net,asp.net-mvc,iis,internal-server-error,C#,Asp.net,Asp.net Mvc,Iis,Internal Server Error,我已使用IIS 7成功地在本地计算机上安装了网站。 但当我将其部署到live server上时,出现以下错误: “由于发生内部服务器错误,无法显示页面” 没有别的了 在live上使用相同的IIS 7,并在错误页面模块中设置为有详细错误,但仍然得到相同的结果。 原因是什么 谢谢修改web.config以显示服务器错误详细信息: <system.web> <customErrors mode="Off" /> </system.web> 您可能还需要删除
详细错误
,但仍然得到相同的结果。
原因是什么
谢谢修改web.config以显示服务器错误详细信息:
<system.web>
<customErrors mode="Off" />
</system.web>
您可能还需要删除/注释掉follow 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。我已经修复了它。
我在web.config中有以下部分:
httpErrors existingResponse="PassThrough"
当我删除它时,我得到了一个真正的错误我刚得到这个错误,它是由web.config中重复的静态内容MIME类型引起的
<compilation debug="true" targetFramework="4.5.2" />
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
此错误仅在静态文件上返回-例如图像、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" />
适用于点击此stackoverflow条目的用户,因为它在短语中排名靠前:
由于发生内部服务器错误,无法显示该页
在我个人的情况下,由于这个错误消息,我打开了Python2.7,认为我可以在我的.NETAPI中使用一些python。然后,当我试图从VisualStudioPro 2013部署API或MVC的普通版本时,我收到了确切的错误消息。我正在部署到azure云webapp
希望这能帮助任何有我同样经历的人。直到我发现这一点,我才想到关闭python。我认为最好的第一种方法是确保通过web.config文件打开详细的错误消息,如下所示:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed"></httpErrors>
</system.webServer>
</configuration>
完成此操作后,您应该会从服务器获得更详细的错误消息
在我的特殊情况下,更详细的错误指出web.config文件的
部分不允许位于我放置web.config的文件夹级别。上面说
无法在此路径上使用此配置节。当节在父级锁定时会发生这种情况。锁定在默认情况下(overrideModeDefault=“Deny”),或者由带有overrideMode=“Deny”或旧版allowOverride=“false”的位置标记显式设置。"
在我在web.config中注释了这一行之后,它似乎可以工作
<compilation debug="true" targetFramework="4.5.2" />
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
在我的例子中,在Web.config中设置httpErrors
等内容无助于识别问题
相反,我做到了:
为出现错误的网站激活“失败的请求跟踪”
配置了HTTP错误跟踪350-999(以防万一),尽管我怀疑是500
再次调用错误的URL
在日志文件夹中观察(在我的示例中为“%SystemDrive%\inetpub\logs\FailedReqLogFiles”)
在Internet Explorer中打开了一个XML文件
然后我看到一个条目,其中包含详细的异常信息
\?\C:\Websites\example.com\www\web.config(592):无法添加唯一键属性“fileExtension”设置为“.json”的“mimeMap”类型的重复集合项
我现在能够解决它并修复错误。之后,我再次停用了“失败的请求跟踪”。我在Azure上运行Web应用程序
由于发生内部服务器错误,无法显示该页
我们遇到了这个问题,因为我们在web.config中进行了应用程序初始化
<compilation debug="true" targetFramework="4.5.2" />
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
。您应该先预热暂存插槽上的页面,然后再将其交换到生产插槽。当我添加了带有大量初始化页面的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.config`部分执行以下操作:
当我注释掉这段代码时,该应用程序在Azure上运行。它也适用于.woff等类型。我确信这段代码不适用于我,但我删除了staticContent中的所有内容,我终于可以看到真正的错误消息了!谢谢。在设置之前清除条目应该可以防止冲突。这正是我遇到的问题。。。如上所述移除完成了操作,谢谢!同样,MVC应用程序的web.config文件中的MIME类型已经在服务器IIS应用程序配置文件中定义,因此一旦从站点级别的web.config文件中删除,就会提供statis文件