在Visual Studio 2015中保存*.cs或*.cshtml文件后,IIS Express会停止运行。

4

我正在测试Visual Studio 2015 Ultimate CTP 5(14.0.22412.0 DP)中的新的ASP.NET 5网页模板。

我的问题是,当我运行应用程序时,每次按下.cs.cshtml文件上的保存按钮时,服务器都会停止。没有警告或错误对话框出现。

我可以使用空白的起始项目重现此错误:

file->new project-> ASP.NET Web Application -> ("ASP.NET 5 Empty" and same with "ASP.NET 5 Starter Web")

在尝试定位问题的源头后,我在输出窗口中发现了这个:

iisexpress.exe Information: 0 : Deleted -> c:\users\admin\documents\visual studio 2015\Projects\WebApplication4\src\WebApplication4\Startup.cs
iisexpress.exe Information: 0 : [ApplicationShutdown]: Scheduling shutdown request for debugger detach.
iisexpress.exe Information: 0 : c:\users\admin\documents\visual studio 2015\Projects\WebApplication4\src\WebApplication4\0sc2sxcq.1a1~ -> c:\users\admin\documents\visual studio 2015\Projects\WebApplication4\src\WebApplication4\Startup.cs
iisexpress.exe Information: 0 : [ApplicationShutdown]: Requesting shutdown.
The program '[7760] iisexpress.exe: Program Trace' has exited with code 0 (0x0).
The program '[7760] iisexpress.exe' has exited with code -1 (0xffffffff).
The program '[7348] iexplore.exe' has exited with code -1 (0xffffffff).

看起来保存文件会删除它,删除文件会触发关机。我认为这不是预期的结果。
在调试时使用“在浏览器中查看”替代调试可以解决问题(但我想要使用调试)。
我尝试过:
- 重新安装Visual Studio - 禁用Web Essentials / Resharper - 运行所有可用的目标KRE版本 - 切换到Release 我不想格式化我的电脑,但是这似乎有点极端。
我正在使用Windows 8.1 Pro。
编辑:
在VS 2015 CTP 6中仍然存在此问题。
("Microsoft.AspNet.Server.IIS" 版本 1.0.0-beta2 和 1.0.0-beta3)

1
我的端口也出现了同样的问题。 - dotnetstep
我遇到了同样的问题。 - Josh C
1个回答

3
我假设你正在尝试以调试模式(F5)运行并编辑应用程序。目前,在调试模式下保存文件时,预编译会启动并尝试重新编译已保存的文件。此步骤终止iisexpress.exe。 为避免此问题,建议您使用Ctrl + F5(不附加调试器)运行应用程序。
最终预编译的目的是为了提高开发效率。虽然它可能目前会影响到调试体验,但您会注意到,与之前版本相比,没有附加调试器运行应用程序会导致显著更快的执行速度。

是的,我认为它很糟糕的主要原因是我无法在不重启的情况下编辑剃刀文件并看到更改。对于后端来说,“编辑并继续”并不那么关键...感谢您的建议。但是,仍然觉得在没有任何确认的情况下终止有些不完善。同时,在带有“编辑并继续”功能的新安装的Windows-Visual Studio上可以正常工作。 - Michał W.
我已经缩小到一个项目依赖关系: "Microsoft.AspNet.Server.IIS": "1.0.0-beta1" 可以工作,而 "Microsoft.AspNet.Server.IIS": "1.0.0-beta2" 会停止IIS。 - Michał W.
我们同意!计划修复,使其更像以前的版本,不用担心 :)。 - N. Taylor Mullen
1
我正在使用beta1,但它的表现不正常。我只想让IIS在我手动重新编译站点时继续工作。这是自从VS2005以来我一直在使用的方式。但我想既然这是测试版,希望发布后会正常运行。另外,CTRL+F5对我无效?另一个答案建议右键单击项目->查看->在浏览器中查看。这将启动没有任何调试的IIS,如果我手动重建站点,则代码更改将继续进行。轻松了 - Piotr Kula

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