发布ASP.NET Core应用后web.config仍含Development环境变量求助
排查ASP.NET Core发布后web.config中ASPNETCORE_ENVIRONMENT的来源
你发布后web.config中出现以下配置:
<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>
删除launchSettings.json配置后问题依旧,结合你提供的Properties/PublishProfiles/FolderProfile.xml配置,可从以下几个方向排查:
可能的来源及解决方法
项目.csproj文件配置
打开项目根目录的.csproj文件,搜索是否存在<EnvironmentName>Development</EnvironmentName>或<ASPNETCORE_ENVIRONMENT>Development</ASPNETCORE_ENVIRONMENT>节点。如果有,将其修改为目标环境(比如Production)或直接删除。发布命令行参数
若使用dotnet publish命令发布,检查是否附带了/p:EnvironmentName=Development或/p:ASPNETCORE_ENVIRONMENT=Development参数。发布时替换为/p:EnvironmentName=Production即可覆盖。系统/用户级环境变量
检查当前系统或用户的环境变量中是否设置了ASPNETCORE_ENVIRONMENT=Development:- Windows:打开「系统属性-高级-环境变量」查看
- Linux/macOS:终端执行
echo $ASPNETCORE_ENVIRONMENT
若存在该变量,临时修改或移除后重新发布。
强制指定发布环境
在你的FolderProfile.xml的<PropertyGroup>中添加<EnvironmentName>Production</EnvironmentName>,强制发布时生成对应环境的配置:<Project> <PropertyGroup> <DeleteExistingFiles>false</DeleteExistingFiles> <ExcludeApp_Data>false</ExcludeApp_Data> <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <PublishProvider>FileSystem</PublishProvider> <PublishUrl>E:\pub\demo1</PublishUrl> <WebPublishMethod>FileSystem</WebPublishMethod> <_TargetId>Folder</_TargetId> <EnvironmentName>Production</EnvironmentName> <!-- 添加这行 --> </PropertyGroup> </Project>
内容的提问来源于stack exchange,提问作者buga
相关产品推荐
相关产品推荐

