【问题标题】:Why can't I edit my ASP.NET Web application at run time?为什么我不能在运行时编辑我的 ASP.NET Web 应用程序?
【发布时间】:2008-11-20 21:41:57
【问题描述】:

为什么 ASP.NET Web 应用程序的代码隐藏页面在运行时被锁定?我有较旧的项目(可能定义为“网站”而不是“网络应用程序”),我可以在其中编辑代码、刷新浏览器并查看我的更改。使用网络应用程序,如果我想实时查看我的更改,我必须不断关闭并重新打开浏览器。是否有设置或我缺少的东西允许我在运行时进行编辑,而无需重新启动调试会话?

【问题讨论】:

    标签: asp.net visual-studio-2008 web-applications


    【解决方案1】:

    您可以在项目属性中启用编辑并继续。右键单击解决方案资源管理器中的项目,选择 Web 选项卡并选中 Enable Edit and Continue。

    现在您可以编辑源代码,但您必须暂停调试器才能这样做。

    【讨论】:

    • 我已启用该功能,但是每当我进行更改时,它都会说在我重新启动调试器之前无法继续。
    • 我知道我要挂断电话了。你是对的,如果我暂停我可以进行更改,但如果我尝试编辑 LINQ 语句,我会得到“无法在调试时应用此更改。包含查询表达式的语句已更改。您必须还原更改或停止调试会话。哦,好吧...
    • 确实如此。不能以这种方式编辑带有 LINQ 查询的方法。
    【解决方案2】:

    使用 IIS 作为开发服务器时,Visual Studio for ASP.NET 目前无法使用“编辑并继续”。

    但是,请参阅此 blog entry,这表明 Visual Studio 2005 Web Application Project 项目类型是可能的。它需要在开发过程中使用 Visual Studio 开发服务器 (Cassini) 而不是本地 IIS(请参阅项目的属性框)。

    【讨论】:

      【解决方案3】:

      不,在 Web 应用程序中,代码隐藏被预编译为 dll,因此 dll 中的任何更改都将回收应用程序池,并停止您的调试会话,

      如果您按 ctrl-F5 而不是 F5 来启动(或在 IIS 中托管您的站点),您将在没有调试器的情况下启动,并且不需要一直重新启动浏览器...

      除非你真的 真的需要调试一个你想不通的问题,你应该在没有调试器的情况下启动网络应用程序,让它启动起来更快捷。花费在调试上的每一分钟都是没有花费在编写单元测试上的一分钟。恕我直言,您应该编写单元测试,它们会持续更长时间。

      【讨论】:

      • 唯一的缺点是您无法逐步看到您的更改。我更喜欢进行一些更改,刷新页面以确保我在正轨,编写更多代码等。不过,您是对的,跳过调试器确实会使流程更快捷。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      • 2019-10-29
      相关资源
      最近更新 更多