从Cassini切换到IIS Express 8时出现难以理解的错误

时间:2012-09-06 18:02:49

标签: asp.net iis-express

我已经在MVC3中开展了几个月的Web项目。我一直在使用Visual Studio的内置Web服务器(Cassini)进行开发,但发现我需要使用IIS Express来支持HTTPS。

安装IIS Express 8后,我右键单击VS中的项目并选择“使用IIS Express ...”,并允许它为IIS创建一个站点。现在,当我尝试测试我的网站时,出现以下错误:

Specified argument was out of the range of valid values.
Parameter name: site

Stack Trace:
[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: site]
   System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException) +298

[HttpException (0x80004005): Specified argument was out of the range of valid values.
Parameter name: site]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9850940
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

堆栈跟踪不引用我的任何代码,我的代码不包含任何名为site的变量。我在一些地方有一个名为Site的属性,但没有site

此外,该异常甚至不会使调试器跳闸。该错误不是在VS中破坏执行,而是在浏览器中显示为标准的黄色ASP.NET错误页面(尽管我认为这可能是使用IIS而不是Cassini时的预期行为。)

我的项目中没有使用任何HTTPS代码,无论我是否在项目属性中启用了HTTPS,都会出现错误。我还要提一下,我们的生产服务器正确运行IIS 7,我从来没有遇到过这个问题。

那么,知道出了什么问题吗?我可以提供源代码,但目前我不知道错误源自何处。

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

原来,iis 8不适用于Windows 7.因此我必须使用以下方法启用iis 7:

  • 单击“开始”,然后单击“控制面板”。
  • 在“控制面板”中,单击“程序”,然后单击“打开或关闭Windows功能”。
  • 在“Windows功能”对话框中,单击“Internet信息服务”,然后单击“确定”。

答案 1 :(得分:2)

我在新的笔记本电脑上遇到了类似的问题(Windows 8)。拉了我的GitRepo,试图在IIS Express中运行我的(工作应用程序)并得到同样的错误。

原来我没有在Windows功能中安装“Internet信息服务可托管Web核心”或“Internet信息服务”。我不确定你是否需要IIS for IIS,因为添加它并没有解决问题,但是一旦我安装了IIS Hostable Web Core,一切都很好。

我只能假定(并且可能来自名称)Hostable Web Core是预先请求的。对于IIS Express。

答案 2 :(得分:0)

我不知道问题出在哪里,但我必须工作,我安装完整的IIS版本(不快递)并在启动时禁用服务。