我编写了一个AspNetCore.Mvc,v.1.1.0应用程序,并使用WebListener服务器自我托管它。与我读过的文档一致,我没有使用IIS集成。 它在我的机器上很好地调试。当我将它发布到我的DEV服务器时,我可以在那里运行控制台并通过网络命中我的终端。我已正确配置
我的问题是关于使这个自托管WebListener应用程序作为Windows服务运行的最佳实践,该服务将在计算机启动时启动。我应该使用类似TopShelf的东西来做这件事,还是我不知道AspNetCore的原生内容?
我(或者我认为有)遵循这两个链接上的说明:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hosting
http://andrewlock.net/configuring-urls-with-kestrel-iis-and-iis-express-with-asp-net-core/
答案 0 :(得分:0)
首先,您需要配置您的应用以使用托管AspNetCore。
将这些内容添加到project.json
"Microsoft.AspNetCore.Hosting": "1.0.0-*",
"Microsoft.AspNetCore.Hosting.WindowsServices": "1.0.0-*"
以下是StartUp类的示例,我从未使用过WebListener,因此需要对其进行修改。
var host = new WebHostBuilder()
.UseIISIntegration()
.UseKestrel()
.UseContentRoot(@"Path\To\Content\Root")
.UseStartup<Startup>()
.Build();
///input logic depending on the Environment variables.
host.RunAsService();
话虽这么说,我不明白你对IIS和Kestrel的厌恶。您必须在Windows计算机上才能作为服务运行。因此,IIS和Kestrel应该比WebListener更加适合调试。