我有 ASP.NET Core 2.0 应用程序托管在 Windows 2012RC2 机器上的 IIS 中。我们将 Jenkins 用于 CI。以下命令将在安装了 Jenkins 的 Build Server 上执行。运行 Jenkins 的用户具有完全的域管理员访问权限。
要构建和部署应用程序,我想使用此处提到的发布配置文件选项。
所以我创建了发布配置文件并在构建服务器上执行了以下命令
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 : error : 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 XXXXXXXXXX:8172
MSDEPLOY:错误计数:1. [D:\Jenkins\MyProject\workspace\MyApplication\Src\Api\Api.csproj]
根据看起来 MSDEPLOY 正在尝试使用的错误IIS Web Management Service
,我没有Web Management Service
在目标服务器上安装。(我不想)。相反,我已经Web Deployment Agent Service
在目标 Web 服务器上安装了。
(注意:我有其他经典的 ASP.NET Web 应用程序,Jenkins 能够使用 MSBuild 和 Web 部署代理服务将这些项目部署到同一个目标服务器,所以我确信从构建服务器到目标 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>