所以我使用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中的“命令”下,我有以下内容:
"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“在后台启动”(没有向我显示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不够“聪明”来处理从进程中分离,等待dnx动态重新编译,然后重新连接到进程.但是到目前为止,它从来没有理由支持这种情况,因此不清楚它是否仅仅是“它还不知道如何做到”或“它是不可能的”.
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应用程序正在运行,则启动服务器.没有webserver =没有ASP.NET应用程序.我假设“调试模式”是指“从调试开始(F5)”.如果是这样,那么“启动无需调试(Shift F5)”来解决您遇到的问题.
这是一个练习:
>关闭Visual Studio(不是必需但有用的,以显示这些都不是VS特定的).
>启动Web服务器.最简单的方法是dnx. web从项目根文件夹中的命令行运行.但是,您可以启动IIS Express(应该已经配置),甚至可以配置IIS并启动它.
>通过在浏览器中打开Web服务器和Web应用程序来验证它是否正在运行.
>使用记事本或其他文本编辑器,编辑项目中可能发生可见更改的文件或仅强制显示错误“throw new NullReferenceException()”.
>保存文件.
>刷新浏览器.
Web应用程序将反映更改.如果快速刷新,您可能会发现轻微延迟.这是对内存的动态编译.