Asp.net core 如何配置asp.net核心网站的部署?
我需要为每个环境发布具有特定web.config的网站,以便将环境变量ASPNETCORE\u environment设置为“开发”或“生产” 这可以通过发送包含以下内容的web.config来实现:Asp.net core 如何配置asp.net核心网站的部署?,asp.net-core,iis-8,webdeploy,asp.net-core-1.1,Asp.net Core,Iis 8,Webdeploy,Asp.net Core 1.1,我需要为每个环境发布具有特定web.config的网站,以便将环境变量ASPNETCORE\u environment设置为“开发”或“生产” 这可以通过发送包含以下内容的web.config来实现: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" pa
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\myProject.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
我的webdeploy配置文件中没有特定内容
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://my.test.com</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<MSDeployServiceURL>my.test.com</MSDeployServiceURL>
<DeployIisAppPath>my.test.com</DeployIisAppPath>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod> <!-- MsDepSvc , WMSVC, RemoteAgent -->
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<AuthType>NTLM</AuthType>
<UserName>myusername</UserName>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
</Project>
MSDeploy
Azure网站
释放
假的
任何CPU
https://my.test.com
真的
my.test.com
my.test.com
真的
远程代理
真的
NTLM
我的用户名
真的
如何在.csproj或webdeploy配置文件或其他任何地方配置asp.net核心项目,以便自动将适当的web.config(或修改其内容)发送到相应的环境 正如@CalC所说,我只想在不同的目标机器上设置环境变量。因此,发布一个web.config来覆盖这个可能已经在本地设置的值,这肯定是危险的,而且肯定不是一个好方法 因此,答案是:您不应该将web.config发布到发布文件夹中,而是直接在目标计算机/文件夹上更新它。
也可以使用此处未介绍的其他方法设置此环境变量。正如@CalC所说,我只想在不同的目标机器上设置环境变量。因此,发布一个web.config来覆盖这个可能已经在本地设置的值,这肯定是危险的,而且肯定不是一个好方法 因此,答案是:您不应该将web.config发布到发布文件夹中,而是直接在目标计算机/文件夹上更新它。
也可以使用此处未介绍的其他方法设置此环境变量。我很困惑。当然,您只需要在目标机器上适当地设置环境变量,然后再也不用担心它了?你是说目标机器可以在开发和生产之间改变吗?不,机器是不同的,你完全正确@Cal279,我能做的最好的事情就是直接在机器上设置这个环境变量。我已经这么做了,我认为这是最好的做法。我稍后会发布一个答案来结束这个问题。我很困惑。当然,您只需要在目标机器上适当地设置环境变量,然后再也不用担心它了?你是说目标机器可以在开发和生产之间改变吗?不,机器是不同的,你完全正确@Cal279,我能做的最好的事情就是直接在机器上设置这个环境变量。我已经这么做了,我认为这是最好的做法。我稍后会发布一个答案来结束这个问题。谢谢
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://my.test.com</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<MSDeployServiceURL>my.test.com</MSDeployServiceURL>
<DeployIisAppPath>my.test.com</DeployIisAppPath>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod> <!-- MsDepSvc , WMSVC, RemoteAgent -->
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<AuthType>NTLM</AuthType>
<UserName>myusername</UserName>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
</Project>