如何解决如何在ASP.NET Core 3.1应用程序中基于URL进行单独的IIS Express配置?
我有一个项目要发布在IIS服务器上的两个不同地址上:https://domain/test1/
和https://domain/test2/
。根据我发布的地址,我想为我的项目使用不同的配置设置,为简化起见,我们假设该配置为条目email
。
因此,对于地址https://domain/test1/
,我要配置email: test1@test1.com
,对于https://domain/test2/
,要email: test2@test2.com
。
我尝试更改launchSettings.json
文件中的配置,但是我无法添加具有相同名称的条目,如果更改了条目的名称,那么它将不知道使用IISExpress来发布它。
"IIS Express": {
"commandName": "IISExpress","launchBrowser": true,"applicationUrl": "https://domain/test1","email": "test1@test1.com","environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},"IIS Express": {
"commandName": "IISExpress","applicationUrl": "https://domain/test2","email": "test2@test2.com","environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
如何基于ASP.NET Core 3.1中的当前URL地址进行单独的配置?
解决方法
据我所知,launchSettings.json文件仅在本地开发计算机上使用,并且未部署。它仅由Visual Studio使用。
因此,如果您在launchSettings.json中设置了电子邮件设置,它将不会部署到生产服务器,也将不会使用。
此外,正如Lex所说,没有满足您要求的功能。
我建议您考虑使用appsetting.json和Environment变量来满足您的要求。
您可以使用不同的环境创建多个appsetting.json。
发布后,您可以打开applicationHost.config
,指定站点位置并按如下所示设置其他环境变量。
注意:此解决方法仅适用于路径为IIS网站名称的其他IIS网站名称。
applicationHost.config
路径:C:\Windows\System32\inetsrv\config\
。
<location path="domainA">
<system.webServer>
<aspNetCore>
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Staging" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
<location path="domainB">
<system.webServer>
<aspNetCore>
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。