为什么我在使用IIS Express时遇到错误500.0(包括重要的调试信息)

时间:2012-06-20 14:52:13

标签: visual-studio-2010 iis-express

我在VS2010 SP1上创建了一个空白的MVC 3应用程序,并将应用程序设置为使用IIS Express。当我调试时,我收到错误500.0(0x80070585)

我能够使用VS dev服务器

成功运行应用程序

我已将app目录设置为Everyone的完全权限,只是为了消除所有安全问题的可能性。我进一步验证了IIS express能够通过使用SysInternals ProcMon确认它来访问web.config。 ProcMon 显示尝试从我的应用程序目录中的任何其他文件读取的IISExpress进程。

我已遵循以下问题中的建议,但它没有给我任何更好的信息。 HTTP 500 Internal Error - IIS websites

在Logs或TraceLogs目录的IISExpress目录中没有生成日志,但是在Temp中创建了一个日志,但它不是很有用。

Successfully registered URL "http://localhost:62017/" for site "MvcApplication1" application "/"
Registration completed for site "MvcApplication1"
Request ended: http://localhost:62017/ with HTTP status 500.0
Request ended: http://localhost:62017/ with HTTP status 500.0
Request ended: http://localhost:62017/ with HTTP status 500.0

我无法在事件查看器

中找到任何消息

**更新:** 禁用防火墙,没有变化 通过命令行运行IISExpress,无需更改

8 个答案:

答案 0 :(得分:15)

我上周遇到了同样的问题,该应用程序在VS Studio的dev web服务器上运行完美。但是在IISExpress中随时都有HTTP Error 500.我在这个时候的解决方案是:

  • 关闭VS Studio - 使用IISExpress设置解决方案
  • 得到:/您的个人资料中的/ Document / IISExpress / config /
  • 重命名或删除applicationhost.config
  • 在VS Studio中打开您的解决方案
  • 一个Dialog将从IISExpress启动 - 这将设置一个新的配置。
  • 尝试运行您的网络应用

答案 1 :(得分:12)

您可能在Web.Config文件中有一些mime代码,如下所示:

<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />

如果是这样,你应该在添加之前删除mimeMap:

.
..
...
....
  </system.web>
  <system.webServer>
    <staticContent>
      <remove fileExtension=".svg" />
      <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
    </staticContent>
  </system.webServer>

....
...
..
.

答案 2 :(得分:4)

重新安装iis express似乎解决了这个问题

答案 3 :(得分:4)

这可能与IIS Express applicationhost.config和您的web.config之间的冲突有关。

mimeType已添加到我的本地web.config中,该文件已存在于applicationhost.config中,IIS Express已开始提供500多个错误。

您可能还会在Windows事件日志中注意到此错误,&#34;为缓存压缩内容指定的目录无效。静态压缩正在被禁用。&#34;

更多信息:http://blog.degree.no/2013/04/the-directory-specified-for-caching-compressed-content-is-invalid-static-compression-is-being-disabled/

我从web.config中删除了mimeTypes,问题已解决。

applicationhost.config位置:C:\Users\[User]\Documents\IISExpress\config

答案 4 :(得分:1)

您使用的是PLINQ(.AsParallel)或Parallel.For或类似方法吗?我发现MVC不能很好地处理它们抛出的AggregateException(在我的情况下,我得到一个空白的500页,而在日志/事件日志中没有。)

我通过关注VS中Debug输出窗口中记录的“First Chance”异常来确定问题。尝试运行该站点,等待它出错,清除调试窗口并重新加载页面。你看到有用吗?

答案 5 :(得分:0)

您的配置文件可能存在问题,特别是web.configapplicationhost.config

我知道如何诊断此问题的唯一方法是将内部版本发布到常规IIS,然后在IIS管理器中检查站点的“错误页面”模块。如果确实是那些配置文件有问题,您将在此处弹出一个带有以下内容的弹出窗口:“无法添加类型为...的重复条目”。谷歌相应。
如果“重复条目”的类型为“错误”,则可以尝试在httpErrors下添加以下元素:

<remove statusCode="404"/>

也就是说,假设您在HttpErrors下带有statusCode 404的Error元素。(我只有一次。)

答案 6 :(得分:0)

在我的情况下,此问题是由于使用Windows身份验证+ firefox +错误的域登录(权限不足)引起的。

详细信息: 我的开发机正在使用Windows域“ domA”,该应用程序将在接受来自域“ domA”和“ domB”的登录的环境中运行。虽然在Web服务器上都可以使用,但是在我的开发机上,只有我在“ domA”中的帐户具有足够的权限来访问应用程序的所有文件。在IE中,默认情况下使用“ domA”,而在FF中,我会看到一个登录对话框,在该对话框中我确实从“ domB”使用帐户登录。

我知道令人困惑的问题,但是也许其他人也有同样的情况。至少下次我遇到它会对我有帮助。 :)

答案 7 :(得分:0)

以防万一发现其他人,我有类似的错误,但问题是我更新了我的 web.config 并且有一个额外的 ">" 字符应该是..所以格式错误的 web.config 文件可能导致相同的行为。