gpt4 book ai didi

deployment - 将 MsBuild 包分解并部署为单独的 MsBuild 和 MsDeploy 命令

转载 作者:行者123 更新时间:2023-12-02 23:48:49 25 4
gpt4 key购买 nike

我在将 MsBuild package+deploy 命令分解为两个单独的命令时遇到一些问题。 (我需要这样做才能将其他参数传递给 MsDeploy)。

运行良好的命令如下所示:

msbuild "src\Solution.sln" 
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://192.168.0.1:8172/MsDeploy.axd
/P:DeployIISAppPath=staging.website.com
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WmSvc
/P:CreatePackageOnPublish=True
/P:UserName=staging-deploy
/P:Password=xyz

分离后的打包命令如下所示:

msbuild "src\Solution.sln" 
/P:Configuration=Deploy-Staging
/P:DeployOnBuild=True
/P:DeployTarget=Package
/P:_PackageTempDir=C:\temp\web

效果很好。然后是 MsDeploy 部分:

msdeploy 
-verb:sync
-allowUntrusted
-usechecksum
-source:manifest=
'src\WebProject\obj\Deploy-Staging\Package\WebProject.SourceManifest.xml'
-dest:auto,ComputerName=
'https://192.168.0.1:8172/MsDeploy.axd?site=staging.website.com',
username='staging-deploy',password='xyz',authType='basic',includeAcls='false'
-enableRule:DoNotDeleteRule

失败,WmSvc.log 中出现以下错误

wmsvc.exe Error: 0 : Attempted to perform an unauthorized operation.
setAcl/C:\temp\web (Read)
ProcessId=15784
ThreadId=31
DateTime=2011-03-30T14:57:02.4867689Z
Timestamp=3802908721815
wmsvc.exe Error: 0 : Not authorized.
Details: No rule was found that could authorize user 'staging-deploy',
provider 'setAcl', operation 'Read', path 'C:\temp\web'.

(以及更多读/写操作)

它试图访问的路径显然出了问题(因为它与其他方法一起工作正常) - 我不确定它是否正在尝试正确使用 iisApp 定位,目前我不认为正确的 web.config 也将被部署。

最佳答案

我现在已经解决了这个问题 - 我需要一个与自动生成的 .cmd 文件使用的命令不同的命令,但是比较这两个命令让我可以修复它(感谢 @Vishal R. Joshi)

我需要的差异是:

  • 基本身份验证
  • 允许不受信任的证书
  • ?site=staging.webserver 位于 MsBuild.axd 路径的末尾,与我的原始命令一样
  • 覆盖参数文件中设置的 IIS Web 应用名称
  • 启用不删除规则

获胜命令如下:

msdeploy 
-verb:sync
-allowUntrusted
-source:package='src\WebProject\obj\Deploy-Staging\Package\WebProject.zip'
-dest:auto,ComputerName=
'https://192.168.0.1:8172/MsDeploy.axd?site=staging.website.com',
username='staging-deploy',password='xyz',authType='basic',includeAcls='false'
setParamFile:
"src\WebProject\obj\Deploy-Staging\Package\WebProject.SetParameters.xml"
-setParam:name='IIS Web Application Name',value='staging.website.com'
-enableRule:DoNotDeleteRule
-disableLink:AppPoolExtension -disableLink:ContentExtension
-disableLink:CertificateExtension

希望这对某人有帮助!

关于deployment - 将 MsBuild 包分解并部署为单独的 MsBuild 和 MsDeploy 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com