ASP.NET 5 的 Web 服务器无需调试即可运行
Web server for ASP.NET 5 that works without debugging active
抱歉,如果这是一个愚蠢的问题,但我不明白。
所以我使用 Visual Studio 2015 和 DNX 创建了一个 ASP.NET 5 页。
开箱即用,我的 project.json 中有这两个依赖项:
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4"
在 project.json 中的 "commands" 下,我有以下内容:
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
在项目属性中,我可以在 "IIS Express" 和 "web" 之间更改配置文件作为部署选项。两者都工作正常,当我开始调试时,它会启动 Web 服务器(IIS Express 或 WebListener)并且站点正在运行。如果我停止调试,服务器就会停止。 WebListener 在命令提示符中打开 "dnx.exe"。
这个pluggable server layer真的很不错,我明白了。但是,作为开发人员,我如何设置一个简单的服务器,我可以在其中更改我的站点并快速查看更改?
我当然可以安装 IIS 并创建一个指向我的 wwwroot 的站点,但这是我在 ASP.NET 世界中唯一的选择吗?我可以使用 WebListener "started in the background"(不显示带有 dnx.exe 的命令提示符)吗?我也可以启动一个节点服务器,但又一次 - 我可以,这很好,但是当我拥有完整的 ASP.NET 工具带时,为什么我必须这样做?
ASP.NET 5 有 dynamic compilation 但我不确定如何测试它,因为我的 Web 服务器仅在我处于调试模式时启动。
我知道这是一个预发布版本,但我们将不胜感激任何帮助。
But how do I, as a developer setup an easy server where I can make a
change to my site and quickly see the changes.
无论使用什么服务器,您都可以通过不调试启动项目(Shift + F5) 来使用动态编译。
由于体系结构原因,在 Visual Studio 中使用调试 (F5) 启动时动态编译不起作用。这是因为 Shift + F5 和 F5 的区别在于,后者是 VS 将调试器附加到进程。
以后会支持这个吗?这还不清楚,但现在因为 VS 还 "smart" 不足以处理从进程分离,等待 dnx 动态重新编译,然后重新附加到进程。但是直到现在它还没有理由支持这种情况,所以不清楚它只是 "it doesn't know how to do it yet" 还是 "it is impossible to do."
I can of course install IIS and create a site that is pointing to my
wwwroot but is that my only option in the ASP.NET world?
没有。您可以使用任何支持 Microsoft.AspNet.Hosting 的网络服务器。今天,您的选择仅限于 IIS、IIS Express 和您链接到的两个实验服务器,但目标是通过提供可针对 (Microsoft.AspNet.Hosting) 进行编程的接口,使第三方能够开发替代方案。
ASP.NET 5 has dynamic compilation but I'm not sure how to even test it
since my web server is only started when I'm in debug mode.
如果 Web 应用程序 运行ning 则服务器已启动。没有网络服务器 = 没有 ASP.NET 应用程序。我假设 "debug mode" 你的意思是 "Start with Debug (F5)"。如果是这样,那么 "Start without Debug (Shift + F5)" 解决您遇到的问题。
这是一个练习:
- 关闭 Visual Studio(不是必需的,但有助于显示 none 这是 VS 特定的)。
- 启动网络服务器。最简单的方法是 dnx 。 web 运行 来自项目根文件夹中的命令行。但是,您可以启动 IIS Express(应该已经配置)或者甚至配置 IIS 并启动它。
- 通过在浏览器中打开来验证 Web 服务器和 Web 应用程序 运行ning。
- 使用记事本或其他一些文本编辑器,编辑项目中的一个文件,该文件会有可见的更改或只是强制出错 "throw new NullReferenceException()"。
- 保存文件。
- 刷新浏览器。
Web 应用程序将反映更改。如果快速刷新,您可能会注意到轻微的延迟。那就是动态编译到内存的发生。
抱歉,如果这是一个愚蠢的问题,但我不明白。 所以我使用 Visual Studio 2015 和 DNX 创建了一个 ASP.NET 5 页。
开箱即用,我的 project.json 中有这两个依赖项:
"Microsoft.AspNet.Server.IIS": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4"
在 project.json 中的 "commands" 下,我有以下内容:
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
在项目属性中,我可以在 "IIS Express" 和 "web" 之间更改配置文件作为部署选项。两者都工作正常,当我开始调试时,它会启动 Web 服务器(IIS Express 或 WebListener)并且站点正在运行。如果我停止调试,服务器就会停止。 WebListener 在命令提示符中打开 "dnx.exe"。
这个pluggable server layer真的很不错,我明白了。但是,作为开发人员,我如何设置一个简单的服务器,我可以在其中更改我的站点并快速查看更改? 我当然可以安装 IIS 并创建一个指向我的 wwwroot 的站点,但这是我在 ASP.NET 世界中唯一的选择吗?我可以使用 WebListener "started in the background"(不显示带有 dnx.exe 的命令提示符)吗?我也可以启动一个节点服务器,但又一次 - 我可以,这很好,但是当我拥有完整的 ASP.NET 工具带时,为什么我必须这样做?
ASP.NET 5 有 dynamic compilation 但我不确定如何测试它,因为我的 Web 服务器仅在我处于调试模式时启动。
我知道这是一个预发布版本,但我们将不胜感激任何帮助。
But how do I, as a developer setup an easy server where I can make a change to my site and quickly see the changes.
无论使用什么服务器,您都可以通过不调试启动项目(Shift + F5) 来使用动态编译。
由于体系结构原因,在 Visual Studio 中使用调试 (F5) 启动时动态编译不起作用。这是因为 Shift + F5 和 F5 的区别在于,后者是 VS 将调试器附加到进程。
以后会支持这个吗?这还不清楚,但现在因为 VS 还 "smart" 不足以处理从进程分离,等待 dnx 动态重新编译,然后重新附加到进程。但是直到现在它还没有理由支持这种情况,所以不清楚它只是 "it doesn't know how to do it yet" 还是 "it is impossible to do."
I can of course install IIS and create a site that is pointing to my wwwroot but is that my only option in the ASP.NET world?
没有。您可以使用任何支持 Microsoft.AspNet.Hosting 的网络服务器。今天,您的选择仅限于 IIS、IIS Express 和您链接到的两个实验服务器,但目标是通过提供可针对 (Microsoft.AspNet.Hosting) 进行编程的接口,使第三方能够开发替代方案。
ASP.NET 5 has dynamic compilation but I'm not sure how to even test it since my web server is only started when I'm in debug mode.
如果 Web 应用程序 运行ning 则服务器已启动。没有网络服务器 = 没有 ASP.NET 应用程序。我假设 "debug mode" 你的意思是 "Start with Debug (F5)"。如果是这样,那么 "Start without Debug (Shift + F5)" 解决您遇到的问题。
这是一个练习:
- 关闭 Visual Studio(不是必需的,但有助于显示 none 这是 VS 特定的)。
- 启动网络服务器。最简单的方法是 dnx 。 web 运行 来自项目根文件夹中的命令行。但是,您可以启动 IIS Express(应该已经配置)或者甚至配置 IIS 并启动它。
- 通过在浏览器中打开来验证 Web 服务器和 Web 应用程序 运行ning。
- 使用记事本或其他一些文本编辑器,编辑项目中的一个文件,该文件会有可见的更改或只是强制出错 "throw new NullReferenceException()"。
- 保存文件。
- 刷新浏览器。
Web 应用程序将反映更改。如果快速刷新,您可能会注意到轻微的延迟。那就是动态编译到内存的发生。