升级到Visual Studio 2013后无法启动/调试ASP.NET网站

7

我刚在开发机上安装了Visual Studio(Ultimate)。安装似乎很顺利,但是当我尝试运行一个VS2012 ASP.NET Web应用程序项目时,IE会弹出以下消息:

错误:Internet Explorer无法显示网页

已安装IIS Express,并将项目设置为使用IIS Express:

VS2013显示项目已设置为使用IIS Express

IIS Express正在运行,端口已打开等,但它似乎没有提供任何网页。如果我查看IIS Express日志,可以看到请求被返回并显示出似乎是303错误的信息:

2013-12-23 14:22:49 ::1 GET /login.aspx - 25869 - ::1 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+WOW64;+Trident/5.0) - 303 0 0 0
2013-12-23 14:22:53 ::1 GET /login.aspx - 25869 - ::1 Mozilla/5.0+(compatible;+MSIE+9.0;+Windows+NT+6.1;+WOW64;+Trident/5.0) - 303 0 0 0

有什么想法可以让我在VS2013上运行我的项目吗?


1
FYI,这不是针对您特定问题的解决方案,但请尽量避免使用网站“项目”。 - John Saunders
另外,请参阅http://en.wikipedia.org/wiki/HTTP_303。 - John Saunders
抱歉,我一直以为这是一个旧的“网站”项目,但我刚刚检查过了,它绝对是一个“Web应用程序”现在 - 问题已更新! - KenD
好的,你是说它有一个 .csproj 文件?你尝试如何“运行”这个项目? - John Saunders
是的,它有一个.csproj文件,我正在尝试通过单击工具栏中的“开始调试”(即“播放”图标)按钮来运行它。在VS2012中执行相同操作没有问题。 - KenD
2个回答

8

破解了。我的“web.config”文件有以下重写规则:

<rewrite>
  <rules>
    <rule name="Redirect to HTTPS" stopProcessing="true">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$"/>
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>
    </rule>
  </rules>
</rewrite>

... 这将在实际网站上强制使用 HTTPS。当使用 VS2012 的 Cassini 开发 Web 服务器时,这不会引起问题,但由于现在已被替换掉,似乎 IIS Express 正在尝试执行重写规则。我不确定 URL Rewrite 模块是否可用或与 IIS Express 兼容,但现在我可以轻松注释掉有问题的行,并在实际网站上保留它们。


2

检查你的 web.config 文件并查看是否有以下内容:

<authentication mode="Forms">
  <forms loginUrl="~/login.aspx" />
</authentication>

我安装2013时遇到了重定向问题,主要集中在表单loginUrl上。

我的 web.config 文件中没有 <forms loginUrl="~/login.aspx" /> 这一行,但是我担心加上它也没有任何改变 :( - KenD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接