【问题标题】:How to make Visual Studio keep my server running? [duplicate]如何让 Visual Studio 保持我的服务器运行? [复制]
【发布时间】:2016-06-17 09:32:49
【问题描述】:

我来自 PHP 背景,使用 WAMP 服务器。 我现在正在尝试使用 Visual Studio Community 2015 作为 IDE 来学习 ASP.NET MVC。 使用 WAMP 时,您可以更改服务器或客户端代码,只需刷新页面即可查看它们。 另一方面,在 Visual Studio 中,我每次都必须点击调试按钮才能编译并让 IIS 运行。 问题是 Visual Studio 不允许我在调试模式下编辑服务器代码,它不允许我编辑一些客户端代码(cshtml 文件),并且通常限制我可以对项目中的文件执行的操作. 所以我发现自己不得不不断地点击调试并停止调试,与 PHP 中流畅的工作流程相比,这是一个真正的麻烦。 我知道由于必须编译 C#,情况有所不同,但是没有办法让服务器在后台持续运行,因此我只需要在更改服务器代码并刷新时构建项目浏览器中的页面? (对于客户端代码,我应该能够刷新浏览器以查看更改...)

【问题讨论】:

  • 如果你点击暂停按钮,你可以编辑大部分文件。
  • 通常情况下,您应该能够编辑.cshtml 文件,点击刷新然后查看更改的页面,而无需重新启动调试。这同样适用于客户端脚本。此外,调试器有一个名为 edit and continue 的功能,但老实说,我不确定你是否可以让它与 ASP.NET 项目一起使用。
  • 您应该能够编辑 .cshtml 文件,因为它们仅在运行时编译,因此您的更改将通过在浏览器中刷新页面来获取。唯一的例外可能是您已指定必须编译视图。
  • “我发现自己经常不得不点击调试并停止调试,与 PHP 中流畅的工作流程相比,这真是令人讨厌” - 请原谅我的法语,但是那个工作流程不是真正的编程,而是黑客攻击。是的,你可以通过各种机制来启用它,但真正的问题是你应该先思考,然后编码,然后测试,最后运行。因此,如果您引入适当的抽象和单元测试,您会发现在运行代码时编辑代码的需求会很快减少。
  • 您应该能够(不确定在 Express 中是否可以)检查一个标志以允许在调试期间进行编辑。您还应该能够在本地 IIS 中托管您的服务器(即使没有启动调试也会运行)而不是 VS

标签: c# asp.net-mvc iis visual-studio-2015


【解决方案1】:

是的,在 Roslyn 出现之前,这真是令人沮丧。 Roslyn 可以让你做你提到的一切。

Roslyn 使用动态编译,因此我们只需在代码中进行更改,只需刷新浏览器即可反映我们的更改。在以前的 ASP.NET 版本中,我们必须进行代码更改,然后重新构建解决方案,然后刷新浏览器才能使我们的更改生效。

如果是 .cshtml 页面,则不需要编译,因此您仍然可以进行更改并刷新浏览器以查看更改,只需确保 IIS Express 继续运行……就是这样。

要开始使用 Roslyn 进行 C# 动态编译,建议您阅读这篇文章 http://www.codeproject.com/Articles/835251/Overview-of-ASP-NET-vNext#rosy

【讨论】:

    【解决方案2】:

    使用分离过程。使用这种方式你不能调试(不能使用断点),但你的 IIS 会运行。

    一旦您分离了您的应用程序,您就可以编辑您的代码。编辑后需要构建您的项目,然后如果您刷新浏览器,您可以看到更改。请参考 here

    【讨论】:

    • 分离调试器并在编辑后必须再次附加它是一个真正繁琐的工作流程,特别是如果多个 Web 服务器正在运行(要附加到哪个进程?)并且 Web 服务器在分离时经常崩溃。
    • 然后我们必须将我们的应用程序发布到 IIS(本地机器应该配置 IIS)。一旦我们发布了我们的应用程序,我们就可以从 IIS 中运行它们,但是在代码级别进行更改后需要在 IIS 中刷新应用程序。
    • 这是一个完全过时且效率低下的工作流程,您仍然可以附加多个 IIS 工作进程。
    猜你喜欢
    • 2010-09-20
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 2015-05-19
    • 1970-01-01
    • 2011-07-15
    相关资源
    最近更新 更多