使用 MSDeploy 将控制台应用程序部署到 DMZ 服务器

6
我正在尝试使用MSBuild和Team Foundation Server的自动部署功能将控制台应用程序部署到DMZ服务器上的文件夹中。
我已经成功地将多个站点部署到同一台服务器上,效果非常好。但是,我尝试了多种方法,但是文件没有被部署。
首先,我尝试以与我的网站相同的方式部署控制台应用程序,即:
<MSBuild
    Projects="$(SolutionRoot)\MySolution.sln"
    Properties="AllowUntrustedCertificate=True;AuthType=Basic;
    Configuration=DEBUG;CreatePackageOnPublish=True;                                
    DeployIisAppPath=Default Website/dummy.dev.myapp;
    DeployOnBuild=True;DeployTarget=MsDeployPublish;
    MSDeployPublishMethod=WMSvc;
    MsDeployServiceUrl=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd;
    UserName=userid;Password=password;UseMsdeployExe=True"
/>

没有成功。

编辑:没有返回错误消息。一切似乎都进行得很顺利。

然后,我也尝试按以下方式部署控制台应用程序:

<Exec Command="&quot;C:\Program Files\IIS\Microsoft Web Deploy V2\MSDeploy.exe&quot; 
                -verb:sync 
                -source:contentpath=&quot;$(OutDir)\MyApp.Precompiled&quot; 
                -dest:contentpath=&quot;D:\dev.myapp&quot;,computername=xxx.xxx.xxx.xxx,username=userid,password=password" 
                ContinueOnError="false" />

我实际上也尝试过使用计算机名作为https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd

编辑:以下是我得到的结果。 执行:文件或文件夹未找到 执行:类型为“contentPath”的对象和路径“E:\ Builds \ 1 ... \ dev.myapp”无法创建。 执行:路径“\?\ E:\ Builds \ 1 ... \ dev.myapp”无效。 执行:1。 E:\ Builds \ 1 ... \ BuildType \ Targets \ Deploy.targets(142):“C:\ Program Files \ IIS \ Microsoft Web Deploy V2 \ MSDeploy.exe”-verb:sync -source:contentpath =“E:\ Builds \ 1 ... \ dev.myapp”-dest:contentpath =“D:\ dev.myapp”,computername = https://xxx.xxx.xxx.xxx:8172 / MsDeploy.axd,username = userid,password = password”退出代码-1。 我意识到我没有读完所有错误,我真的需要UNC路径吗?

有人知道如何做吗?


请发布您遇到的错误。 - James Woolfenden
3个回答

8

我终于找到了让它工作的方法。

<Exec Command="&quot;C:\Program Files\IIS\Microsoft Web Deploy V2\MSDeploy.exe&quot; 
            -verb:sync 
            -source:contentpath=&quot;$(OutDir)\MyApp.Precompiled&quot; 
            -dest:contentpath=&quot;D:\dev.myapp&quot;,computername=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd,username=userid,password=password,authtype=Basic 
            -allowUntrusted=True" 
            ContinueOnError="false" />

我将计算机名称更改为computername=https://xxx.xxx.xxx.xxx:8172/MsDeploy.axd,添加了authtype=BasicallowUntrusted=True,然后它就可以工作了。
第一个选项无法提供任何错误反馈,这让我感到非常沮丧。但是,当我使用第二个选择时,我得到了反馈信息来解决问题。
如果有人知道如何使用MSBuild任务使其工作,请随时告诉我。

3
尝试使用dirPath提供程序代替contentPath,它会更像文件夹同步,而不是IIS网站部署。请参考此链接

谢谢,我尝试过了,但在这种情况下,我需要使用内置的管理员帐户,而我的当前客户不允许这样做。 - Per

1

考虑到同步使用 EXEC 任务工作,您是否确保在 csproj(或 vbproj)文件中有 Microsoft.WebApplication.targets?我可以看到如果没有正确的目标文件,它会忽略该 msbuild 任务。

例如,在我的 Web 服务项目文件中,我在 csproj 文件底部有以下内容:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接