Visual Studio 2015 更新1 - 调试时没有IIS Express响应

14

我在代码开发环境中遇到了一个错误,我无法解决它,也无法正常工作。

细节:
我正在使用"Visual Studio 2015 Update 1"和"Windows 8.1(最新更新版)"进行工作。我在Visual Studio启动-调试模式下启动了一个Webapi2(资源服务)和两个asp.net mvc应用程序(后端和前端)。我们使用的是IIS Express而不是本地IIS (inetmgr),因为我的团队成员不想在其中运行解决方案。

这是一个项目的启动操作:
输入图像描述

问题是:
当我(start)以调试模式打开Visual Studio时,Visual Studio会打开浏览器,但应用程序不起作用。网站停留在加载模式。就是说;浏览器仍在等待来自IISexpress的响应,但没有响应。这是我看到的(Yükleniyor表示正在加载...):
输入图像描述

如果等待太久,浏览器-IIS将出现此错误:"HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory."

并且我在诊断工具窗口中看到了这条消息:"线程0x3714已退出,代码为0(0x0)。线程0x2780已退出,代码为0(0x0)。线程0x35d0已退出,代码为0(0x0),等等... "。Visual Studio没有任何错误消息。我该如何解决这个问题?

重要提示:

如果我重新启动Visual Studio,我只能调试应用程序一次!如果我停止并再次运行,则问题会再次出现。

另外注意:我试图联系微软。我向他们写了同样的问题。但是两个星期过去了,他们还没有回复。

我已经尝试过以下方法:
在发布模式下工作
在安全模式下打开Visual Studio。
恢复Visual Studio
卸载并重新安装Visual Studio
卸载并重新安装IIS Express
仅卸载VS更新1
在另外2台计算机上尝试(解决方案和应用程序都正常运行)


尝试前往特定页面。 - stuartd
@Lost_In_Library 请说明错误具体是什么,而不是说“但是不起作用”。我们只能猜测它可能不是403.14错误。 - Andrew Morton
@Lost_In_Library 你尝试在VS中设置起始页了吗?当你右键单击.aspx文件时,该选项应该在“解决方案资源管理器”中。 - Andrew Morton
我觉得奇怪的是你只能调试一次。也许你应该查看构建跟踪:工具 > 选项 > 项目和解决方案 > 构建和运行 > MSBuild 项目构建输出详细程度设置。这篇文章可能会有所帮助。 - sjokkogutten
为了补充一些信息,我目前也遇到了同样的问题。通过使用procmon和wireshark,我发现IIS Express运行但不会“附加”到它创建的任何HTTP侦听器上。换句话说,侦听器被创建了,因为您可以通过TCP连接到它,但它从不响应任何内容。对此端口的任何请求都会收到ACK,但之后什么也不会发生——就像请求从未到达IIS Express一样。这不是VS或项目问题,而是环境问题。以提升的权限运行IIS Express也没有任何区别。 - Michael Coxon
显示剩余5条评论
11个回答

5
在我的系统中,问题似乎已经解决了。我通过Visual Studio 2015的“工具/扩展和更新…”菜单更新了以下项目:
  1. Microsoft ASP Net Web Framework And Tools(版本5.2.40204.0)。
  2. Microsoft ASP Net Web Tools(版本14.201.20203.0)。
  3. Web Essentials 2015.1(版本1.0.207)。
我认为问题是通过第二个更新解决的,但为了完整起见,我报告了所有已更新的项目。

已经完成了列表中的所有事项,仍然遇到问题。必须每 30 - 40 秒重新启动 IIS。真是一件烦人的事情。 - chaZm
我也安装了更新2,但仍然存在问题。调试系统不稳定,有时需要关闭IIS Express或IIS。我经常看到调试器的错误消息。 - Marco

3
问题似乎和我在一个ASP.NET MVC应用程序中遇到的问题相似。在我的情况下,SignalR v2.2.0是罪魁祸首,对我起作用的临时解决方案是将app.MapSignalR();替换为以下内容:app.UseSignalR(routes =>{routes.MapHub("/chat");}); 在我的Startup类中。
 var task=Task.Run(()=>app.MapSignalR());
 task.Wait(300);
 if (task.IsCanceled)
 {
     Task.Run(() => app.MapSignalR()).Wait(300);
 }

这个解决方案是由JonasSyrstad在SignalR问题线程中提供的,还提供了其他有用的信息:github.com/SignalR/SignalR/issues/3414#issuecomment-75537540

显然,这个问题不仅限于SignalR。你可以在Kaspars Ozols另一个线程的答案中找到更多详细信息:https://dev59.com/VIXca4cB1Zd3GeqPGlPw#34227866


我不知道为什么这个被踩了,因为这正是我们遇到的问题。非常感谢分享! - Trygve
我很高兴它帮助了某个人,尽管我后来通过使用以下方法解决了我的问题:http://www.zpqrtbnk.net/posts/appdomains-threads-cultureinfos-and-paracetamol - forcodesake

2

我遇到了同样的问题,Marco提供的第一种解决方案可以解决问题:安装Microsoft ASP Net Web Framework和Tools(版本5.2.40204.0)


1
也许这已经不重要了,但我遇到了同样的问题,并尝试解决了3天。 最终,卸载并重新安装IIS Express 10解决了这个问题。

对我也有用。从控制面板 - 程序和组件中删除了IIS 10.0,并从https://www.microsoft.com/en-us/download/details.aspx?id=34679安装了IIS 8.0。 - chaZm

1

在此问题得到修复前的简单解决方法:

以管理员模式启动命令提示符。 执行:taskkill /f /im iisexpress.exe


0

我不能添加评论,因为我的声望不到50,但是我想说,我也遇到了这个问题。周三在工作中升级了VS 2015企业版,然后就在每天使用的同一解决方案/项目上工作,结果就出现了这个问题。

以调试模式运行项目时的症状: 页面在浏览器中加载时停滞。

我在代码控制器和Razor视图中设置了断点,直到页面在“服务器端”完成。

断点按正常方式触发,但响应似乎从未到达浏览器。

我只能说,这似乎与Lost_In_Library的问题非常相似。

尝试但仍存在的问题: /ResetUserData和/ResetSettings

希望这有所帮助。我还想指出,我有一个非默认用例,在重置VS后,我必须配置IIS Express 64位,这是我配置过的唯一非默认设置。


如果我以无调试模式(ctrl-f5)开始,一切都会顺利进行,但当然没有调试。今天早上我花了几个小时研究这个问题,我相信问题在更新1的低级别部分。 - Harleyz

0

我也遇到了这个问题。 我认为这是VS2015的一个BUG或者与之相关的问题。

我找到了一个丑陋的解决方案:杀死子进程。 使用SysInternals Suite中的Process Explorer 1.右键单击iisexpress.exe节点 2.选择“结束进程树” 3.F5就可以工作了。


0
请确保以管理员身份运行Visual Studio。我遇到了同样的问题,这样做解决了使用IIS Express进行调试的问题。

0

对我而言,只需以管理员模式运行我的Visual Studio(Update 2)即可解决此问题。


0

我在使用MvcSiteMapProvider 4.6.22时遇到了同样的问题。

如何重现:

  1. 我使用VS 2015 SP3创建了ASP.NET MVC 5应用程序。
  2. 然后我通过NuGet包管理器添加了MvcSiteMapProvider.MVC5(版本4.6.22)。 管理器添加了4个包:
    • MvcSiteMapProvider.Web(v4.6.1)
    • WebActivatorEx。(v2.0.1)
    • MvcSiteMapProvider.MVC5.Core(v4.6.22)
    • MvcSiteMapProvider.MVC5(v4.6.22)

在启动此解决方案的调试后,我遇到了“IIS挂起”的问题。但下一次解决方案启动良好,只有在多次重新启动调试后IIS才会挂起。

也许您应该检查项目中引用的程序集?


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