一个在 IIS 7.5 下运行的 ASP.NET MVC 项目(但问题可能存在于早期版本和非 MVC 站点上),之前是正常工作的,现在对于由静态处理程序处理的内容 - 图像、页面等返回 500 内部服务器错误,但通过控制器本身处理的 MVC 工作正常。
我知道什么原因导致了这个问题,我正在记录下来以防其他人遇到相同的问题。
一个在 IIS 7.5 下运行的 ASP.NET MVC 项目(但问题可能存在于早期版本和非 MVC 站点上),之前是正常工作的,现在对于由静态处理程序处理的内容 - 图像、页面等返回 500 内部服务器错误,但通过控制器本身处理的 MVC 工作正常。
我知道什么原因导致了这个问题,我正在记录下来以防其他人遇到相同的问题。
我启用了“请求失败跟踪”,在搜索(庞大的)日志后,我发现了以下内容:
<EventData>
<Data Name="ContextId">{00000000-0000-0000-3700-0080010000FC}</Data>
<Data Name="ModuleName">CustomErrorModule</Data>
<Data Name="Notification">536870912</Data>
<Data Name="HttpStatus">500</Data>
<Data Name="HttpReason">Internal Server Error</Data>
<Data Name="HttpSubStatus">19</Data>
<Data Name="ErrorCode">2147942583</Data>
<Data Name="ConfigExceptionInfo">
\\?\C:\Websites\xxx\www\web.config ( 58) :Cannot add duplicate collection
entry of type 'mimeMap' with unique key attribute
'fileExtension' set to '.woff'
</Data>
</EventData>
发生的情况是,网站明确添加了一种用于提供Web字体(.woff)的新Mime类型。
后来,新的Mime类型(.woff)也被添加到全局IIS Mime类型中。
网站设置没有覆盖全局设置,反而抛出了异常。
始终删除您想要添加的任何MIME类型,以防它已在IIS/服务器级别上定义,例如:
<staticContent>
<remove fileExtension=".otf" />
<mimeMap fileExtension=".otf" mimeType="application/x-font-otf" />
</staticContent>
某种程度上,引用的DLL版本与web.config中提到的版本存在差异。
尝试了各种论坛中提到的所有选项,没有什么帮助,尽管每个人都建议使用相同类型的修复方法,但在我的情况下不起作用。最终,在我的头疼了两天之后, 我决定删除项目中的所有dll引用和删除web.cofig(制作本地副本),让应用程序抛出错误,然后进行一次添加一个dll并将其复制到local=true本地副本的操作。 添加完所有的dll之后。我创建了一个新的asp.net mvc应用程序并将新应用程序的web.config复制到我的实际应用程序中。 所以我的实际应用程序现在有了一个新的web.config,然后我从保存的web.config的本地副本中复制了连接字符串和其他引用。
只需编译该应用程序并发布到本地文件夹中,并将发布的文件夹FTP到goDaddy即可。
它可以工作,最终我的问题得到了解决。
希望这将有助于其他人,使他们不会像我一样浪费两天时间。