繁体   English   中英

为什么ASP.NET / Visual Studio Web开发服务器这么慢?

[英]Why is the ASP.NET/Visual Studio Web Development Server so slow?

编译 -  XKCD xkcd

我知道现在的编译速度比以前快得多。 然而,对我来说, 使用Visual Studio Web开发服务器编译,尤其是运行/调试ASP.NET项目似乎非常慢

从去年夏天开始,我一直在努力研究ASP.NET MVC项目。 当然,调试它们的最佳方法是使用Visual Studio附带的Web服务器。 这样做时,加载时间非常慢。 Chrome开发工具通常会报告加载我的一个页面有3 分钟的等待时间 ,然后加载时间很短。

我见过 两个问题,但是没有用。 虽然我在Chrome中进行了大部分调试工作,但在IE中也是如此。

有没有其他人有这个问题? 如果是这样,任何提示?

另外,我怀疑问题在于机器的速度。 这台计算机运行的Windows 7和Visual Studio 2010非常快,所以我不明白为什么ASP.NET调试应该这么慢。


更新:在下面的回答中,Jon Skeet建议尝试确定问题是由环境还是由代码本身引起的。 我创建了一个全新的MVC项目并运行它。 第一次测试似乎要快得多。 然而,经过几次测试之后,可以肯定地说第一次测试是异常的 - 通常,它需要我的大项目(2 - 3分钟)。 因此, 这是环境问题 在此先感谢您的帮助!


更新#2:我更新了这个问题已经有一段时间了。 以下是自上次更新以来我收集的一些细节:

  • 在我的两台开发机器上都出现了这种延迟,包括运行Windows 7和Visual Studio 2010
  • 我的所有MVC2和MVC3项目都发生了这种延迟(但我还没有尝试过普通的ASP.NET)
  • Plain / vanilla MVC项目与具有大代码库的MVC项目经历了相同的延迟
  • 禁用IntelliTrace没有帮助
  • 禁用IPv6没有帮助

我还没有找到解决这个问题的方法,所以我一直在等待很长时间。 有谁知道如何解决这个问题?

没有理由为什么它需要3分钟才能开始调试,除非你有一些非常奇怪的事情发生。

我建议你启动调试器,尝试导航到一个页面,然后在加载时闯入调试器。 看看你在哪里浪费时间。 也许你在启动时打电话给失败,但需要几分钟才能完成。

我从来没有经历过你所描述的任何事情,这表明它在你的环境你的代码中 - 如果它是一个通常很快的计算机,那表明它在代码中的某个地方。

如果您创建一个全新的MVC项目并进行调试, 需要很长时间吗?

您可能还想在开始调试时运行Wireshark - 看看您的应用程序中的某些内容是否在尝试获取某些描述的网络资源而您没有意识到这一点。

这是由于Firefox中的IPv6 DNS问题,可以通过在about:config中将network.dns.disableIPv6设置为true来修复

缓慢的DNS响应 - 本地主机和Visual Studio或Cassini上的Firefox

这实际上是MVC的已知性能问题,这是由于在启动时内部抛出大量异常引起的。 如果你打开IntelliTrace,这将破坏它。 尝试禁用IntelliTrace,看看是否能改善它。

资料来源: http//connect.microsoft.com/VisualStudio/feedback/details/535799/debugging-mvc-is-very-very-slow

这些天我遇到了同样的问题,在Win7,VS2010下工作,并开发了一个包含10多个项目的Silverlight解决方案。 启动IE需要大约3分钟,关闭IE后等待3分钟才能恢复VS. 我通过尝试不同的方式克服了这个问题。 但唯一有价值的方法:

  1. 卸载所有不用于调试的项目
  2. 开始调试解决方案(它正常工作)
  3. 重新加载其他项目
  4. VS在这里工作正常。 (VS工作正常)

看来问题只与我身边的VS环境有关。 它与ASP.NET Development Server或IIS无关。

我遇到了同样的问题。 它最终成为我的本地机器上安装ColdFusion的问题(这对我来说是痛苦的)。 ColdFusion将Handler Mappings命名为AboMapperCustom- * ,导致延迟。 我卸载了ColdFusion因为我不再需要它(感谢上帝)。 另一种解决方案是通过web.config删除每个AboMapperCustom条目。 例:

<handlers>
    <remove name="AboMapperCustom-15397" />
    <remove name="AboMapperCustom-20358" />
    <remove name="AboMapperCustom-47286" />
</handlers>

确保AboMapperCustom后面的5位数与本地IIS处理程序映射中的数字相匹配。

HTH

在Visual Studio 2012 + Win10 x64上,我注意到了,如果你

  • 转到任务栏并在那里找到asp.net dev服务器,
  • 右键单击它并执行“显示详细信息”
  • 关闭方框(不是'停止',只是通过'x'关闭)

然后服务器几乎立即加载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM