Visual studio 2015 如何在Windows Server 2012R2上从Visual Studio 2015(+;U1)ASP.NET核心发布到IIS?
这个问题可以看作是两年前的一个更新,它询问如何从visual studio 2015中的开放式ASP.NET核心解决方案(简称ASP.NET 5)发布到我的本地网络上的另一台机器上,该机器上部署了IIS,应该用来运行DNX运行时和我正在编写的ASP.NET应用程序。由于向导没有为我提供任何帮助,我相信我必须完全手动配置MSDEPLOY解决方案及其配置文件,或者其他与之相当的东西 从最初的问题开始,情况发生了很大的变化,所以我要求使用ASP.NET 5和DNX 1.0 RC1 还有一些人问如何做到这一点,提到WebDeploy 3.6,也提到了将近2年的beta版 因此,我认为,对于Visual Studio 2015,这个问题应该有一个新的、不同的答案,因为ASP.NET 5已经成为候选版本,并且功能已经完成。现在是怎么做的 另外,应该明确的是,我所说的不是从Visual studio 2015 如何在Windows Server 2012R2上从Visual Studio 2015(+;U1)ASP.NET核心发布到IIS?,visual-studio-2015,asp.net-core,Visual Studio 2015,Asp.net Core,这个问题可以看作是两年前的一个更新,它询问如何从visual studio 2015中的开放式ASP.NET核心解决方案(简称ASP.NET 5)发布到我的本地网络上的另一台机器上,该机器上部署了IIS,应该用来运行DNX运行时和我正在编写的ASP.NET应用程序。由于向导没有为我提供任何帮助,我相信我必须完全手动配置MSDEPLOY解决方案及其配置文件,或者其他与之相当的东西 从最初的问题开始,情况发生了很大的变化,所以我要求使用ASP.NET 5和DNX 1.0 RC1 还有一些人问如何做到
C:\DEV\WORKINGCOPY
上的Visual Studio解决方案部署到我自己机器的C:\inetpub\wwwroot
,而是通过网络dav或FTP或SMB共享将其复制到运行IIS的windows服务器盒
到目前为止,我所尝试的:
- 在文件系统模式下使用内置的发布到Web向导。其结果似乎是,您可以通过web.cmd运行,该命令将执行dnx和kestrel,但不会构建可从Windows Server 2012上的IIS 8.x运行的捆绑包。此外,发布到文件系统模式创建了一系列内容,包括一组名为approt、logs和wwwroot的基本文件夹,我非常确定不应该将IIS设置为直接提供approt或logs文件夹。如果查看IIS中wwwroot\文件夹的副本,我会看到一个500-内部服务器错误。当IIS不知道如何将web.config放入其中并使用它做任何事情时,我希望它会这样做
- 试图在命令提示符下手动使用
和dnu publish
,希望我可以使用结果替换XYZ-publish.ps1 powershell文件PublishProfiles的内容。dnu发布命令失败,出现“bower未被识别为内部或外部命令”。dnu pack成功,但我不知道如何处理生成的.nupkg文件,以使它们在IIS上运行dnu pack
- 一次单击或键入一个命令即可完成所有操作,包括任何预编译程序集的捆绑和构建(nuget软件包是vNext等效于inclassic.net程序集的概念)
- 让我和其他读者清楚,在准备部署之前,IIS上的一次性设置任务是什么,每次单击“发布”时为您完成的任务是什么,以及如何设置这些任务
<?xml version="1.0" encoding="utf-8"?>
<!--
NOTE: I'm pretty sure that the publishprovider should NOT be the one shown here.
I do not know what it should be and will update this answer when I figure that fact out.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>http://ramsoftazurewebappdemo.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<CompileSource>False</CompileSource>
<_DefaultDNXVersion>dnx-clr-win-x86.1.0.0-rc1-update1</_DefaultDNXVersion>
<UsePowerShell>True</UsePowerShell>
<IISCommand>web</IISCommand>
<WebRoot>wwwroot</WebRoot>
<WwwRootOut>wwwroot</WwwRootOut>
<IncludeSymbols>False</IncludeSymbols>
<Native>False</Native>
<IgnoreDNXRuntime>False</IgnoreDNXRuntime>
<MSDeployServiceURL>myservername.mydomain.biz:443</MSDeployServiceURL>
<DeployIisAppPath>MyWebAppPath</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$USERNAME</UserName>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
</PropertyGroup>
</Project>
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe"
-source:IisApp='C:\dev\PublishOut\YourWebApp\wwwroot
-dest:IisApp='YourIisAppName',
ComputerName='https://yourcomputername.yourdomain.biz/msdeploy.axd',
UserName='$USERNAME',
Password='secr3t',
IncludeAcls='False',AuthType='Basic'
-verb:sync -enableLink:contentLibExtension
-enableRule:DoNotDeleteRule -retryAttempts:3