我已经编写了一个AspNetCore.Mvc 1.1.0版应用程序,并且正在使用WebListener服务器对其进行自我托管。与我阅读的文档保持一致,我没有使用IIS-Integration。
它在我的机器上调试很好。将其发布到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/
最佳答案
首先,您需要配置您的应用程序以与托管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更易于调试。
关于asp.net-core - 如何启动自托管的WebListener Web终结点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40874039/