San*_*ndy 17 windows-services asp.net-core .net-6.0
我目前正在使用 WebHost 和 WebHostBuilder 在 Windows 服务中托管 ASP.NET (.NET 5) 应用程序。
.NET 6 引入了 WebApplication 和 WebApplicationBuilder。我如何使用它们来托管 Windows 服务?
awe*_*awg 44
您可以使用UseWindowsService()此处记录的扩展方法:
与以前版本的情况一样,您需要安装Microsoft.Extensions.Hosting.WindowsServicesNuGet 包。
在 .NET 6 中实现此功能WebApplicationBuilder需要一种解决方法:
var webApplicationOptions = new WebApplicationOptions() { ContentRootPath = AppContext.BaseDirectory, Args = args, ApplicationName = System.Diagnostics.Process.GetCurrentProcess().ProcessName };
var builder = WebApplication.CreateBuilder(webApplicationOptions);
builder.Host.UseWindowsService();
Run Code Online (Sandbox Code Playgroud)
更新:
Microsoft 更改了服务的创建方式来解决此问题。该--contentRoot参数应与 exe 一起使用。
sc config MyWebAppServiceTest binPath= "$pwd\WebApplication560.exe --contentRoot $pwd\"
Run Code Online (Sandbox Code Playgroud)
New-Service -Name {SERVICE NAME} -BinaryPathName "{EXE FILE PATH} --contentRoot {EXE FOLDER PATH}" -Credential "{DOMAIN OR COMPUTER NAME\USER}" -Description "{DESCRIPTION}" -DisplayName "{DISPLAY NAME}" -StartupType Automatic
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28444 次 |
| 最近记录: |