我有在Windows 2012RC2计算机上的IIS中托管的ASP.NET Core 2.0应用程序。我们使用Jenkins进行CI。以下命令将在安装Jenkins的Build Server上执行。 Jenkins运行的用户具有完全的域管理访问权限。
要构建和部署应用程序,我想使用上面提到的here发布配置文件选项 所以我创建了发布配置文件并在构建服务器上执行了以下命令
dotnet publish D:\Jenkins\MyProject\workspace\MyApplication\Src\Api\Api.csproj /p:PublishProfile=development.pubxml
它成功构建项目但在部署期间我收到错误:
MSDEPLOY:错误代码:ERROR_DESTINATION_NOT_REACHABLE [D:\ Jenkins \ MyProject \ workspace \ MyApplication \ Src \ Api \ Api.csproj]
MSDEPLOY:错误:无法连接到远程服务器[D:\ Jenkins \ MyProject \ workspace \ MyApplication \ Src \ Api \ Api.csproj]
MSDEPLOY:错误:连接尝试失败,因为连接方已执行 一段时间后没有正确回应,或建立连接 失败,因为已连接的主机无法响应XXXXXXXXXX:8172
MSDEPLOY:错误计数:1。[D:\ Jenkins \ MyProject \ workspace \ MyApplication \ Src \ Api \ Api.csproj]
根据错误看起来MSDEPLOY正在尝试使用IIS Web Management Service
,我没有在目标服务器上安装Web Management Service
。 (我不想)。相反,我已经在目标Web服务器上安装了Web Deployment Agent Service
。
(注意:我有其他经典的ASP.NET Web应用程序,Jenkins能够使用MSBuild和Web Deployment Agent Service将这些项目部署到同一目标服务器,因此我确信从构建服务器到目标Web的连接服务器在那里工作)
我不确定MSDEPLOY为什么要尝试连接到Web Management Service
而不是Web Deployment Agent Service
。这是development.pubxml
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<TargetFramework>netcoreapp2.0</TargetFramework>
<ProjectGuid>ec75aa7b-c5ca-4d08-a80e-0d70c604f85c</ProjectGuid>
<MSDeployServiceURL>target machine name</MSDeployServiceURL>
<DeployIisAppPath>MyIISApplicationPath</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName />
<_SavePWD>False</_SavePWD>
<AuthType>NTLM</AuthType>
</PropertyGroup>
</Project>