我正在尝试使用VS 2019 Enterprise提供的asp.net core 3.1模板设置工作服务。到目前为止:
1/ 创建了一个新项目并运行它:“Hosting Environment: Development”,符合预期。
开发
1/ 创建了一个新项目并运行它:“Hosting Environment: Development”,符合预期。
开发
2 / 创建了一个文件系统发布配置文件,并添加了<EnvironmentName>Test</EnvironmentName>
以将工作程序发布到测试环境中,例如
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishProtocol>FileSystem</PublishProtocol>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<TargetFramework>netcoreapp3.1</TargetFramework>
<PublishDir>bin\Release\netcoreapp3.1\publish\</PublishDir>
<EnvironmentName>Test</EnvironmentName>
</PropertyGroup>
</Project>
发布版本启动时,HostingEnvironment被设置为“Production”,但我在FolderProfile.pubxml中定义了“Test”。
生产
我尝试过dotnet publish /p:EnvironmentName=Test
,但没有成功。
我还尝试手动生成一个包含以下内容的web.config文件:
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Test" />
工作服务似乎忽略了web.config文件。
在VS调试时,使用DOTNET_ENVIRONMENT = Test
可以正常工作。
测试
在不同的环境中发布工作服务的正确方式是什么?
Microsoft.Extensions.Hosting.WindowsServices,Version=3.1.1.0
。这种方法(具有多个发布配置文件并针对多个环境进行修改)适用于托管在 IIS 上的经典 ASP.NET Core 应用程序,该应用程序使用 ASPNETCORE_ENVIRONMENT。工作程序模板使用 DOTNET_ENVIRONMENT,我不确定如何修改和管理它。 - Karuskrokro