C# ASP.NET MVC调试非常慢-SQL Server Express连接问题?

C# ASP.NET MVC调试非常慢-SQL Server Express连接问题?,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,我正在ASP.NETMVC中开发一个应用程序,使用SQLServerExpress作为后端,Cassini作为开发web服务器(VisualStudio2008附带的服务器) 应用程序的性能非常快(几乎是瞬时的页面切换)。然而,快速启动调试器的速度非常慢;从我点击F5到ASP.NET欢迎页面出现大约需要30秒 我注意到在加载SQLServerManagementStudio Express时出现了类似的延迟,在第一次打开数据库中的表进行查看时又出现了一次延迟。我打开第一张桌子后,一切都很顺利 鉴

我正在ASP.NETMVC中开发一个应用程序,使用SQLServerExpress作为后端,Cassini作为开发web服务器(VisualStudio2008附带的服务器)

应用程序的性能非常快(几乎是瞬时的页面切换)。然而,快速启动调试器的速度非常慢;从我点击F5到ASP.NET欢迎页面出现大约需要30秒

我注意到在加载SQLServerManagementStudio Express时出现了类似的延迟,在第一次打开数据库中的表进行查看时又出现了一次延迟。我打开第一张桌子后,一切都很顺利


鉴于SQLServerManagementStudio Express的行为,我怀疑问题在于与SQLServerExpress建立初始连接。这真的是问题所在吗?如果是,我该如何解决它?

我会检查数据库上的auto_close属性

sp_dboption 'MyDatabaseName', 'autoclose'
我认为express上的默认设置可能是将autoclose设置为on。当该值设置为TRUE时,当数据库中没有用户时,服务器将关闭数据库并从中释放所有资源。将autoclose设置为FALSE将告诉服务器挂起数据库,以便无论用户是否在数据库中,它都处于就绪状态


有关更多信息,请参阅。

如果调试时速度较慢,则需要考虑以下几个瓶颈:

  • 应用程序在调试时启动较慢,因为每当重新生成程序集时,JITer都必须进行预编译
  • 如果您每次都在编译和调试,那么可能是您的编译速度慢,而不是您的应用程序性能慢。点击F5后,浏览器显示需要多长时间?如果您的解决方案中有多个项目,构建它们将需要时间。尝试设置排除类项目的生成配置(确保在必要时手动重新生成它们)
  • 我和卡西尼没有任何麻烦,但你可以试着去IIS只是为了开心

  • 只是想了想,嗯。

    我最终解决了这个问题,从命令提示符窗口使用Netshell重建了我的TCP/IP堆栈。显然,我得到了TCP/IP超时

    netsh int ip reset c:resetlog.txt 
    

    在我的例子中,异常被抛出并捕获,这些异常在调试>输出窗口中可见,这大大降低了我的应用程序在调试时的速度

    我最终启用了这里概述的中断异常,然后修复了代码,这样就不会抛出太多异常


    Dave,点击F5后,浏览器会立即出现,并在第一页决定出现时保持空白状态30秒。我通常在达到F5之前构建。我可以试试IIS7,但我需要先让另一台机器使用windowsserver2008。该解决方案非常小,除了测试项目外,不包括任何其他类项目。该链接提供了一个工具“Microsoft修复它”,它可以自动修复问题,但需要重新启动。