gpt4 book ai didi

msdeploy - 使用 MSDeploy 命令的 Web 应用程序部署问题

转载 作者:行者123 更新时间:2023-12-02 21:35:16 26 4
gpt4 key购买 nike

我有一个 Web 应用程序,我正在尝试使用 MSDeploy.exe (Web Deploy 2) 将其部署到 Web 服务器上

我尝试了4种情况:

  1. 通过VS2010发布方法,设置如下:
    发布方式:Web部署
    服务网址:https://MyServerName:8172/MsDeploy.axd
    站点/应用程序:MyWebSiteName
    允许不受信任:选中
    用户名:我的用户名
    密码:我的密码
    这个方法效果很好。
    在 MyServerName 机器上我正在运行 Web 管理服务;我有一个网站 MyWebSiteName、一个应用程序 MyWebAppName,而 MyUserName 是它的 IIS 管理器。

  2. 通过VS2010发布方法,设置如下:
    发布方式:Web部署
    服务网址:https://MyServerName:8172/MsDeploy.axd
    站点/应用程序:MyWebSiteName/MyWebAppName
    允许不受信任:选中
    用户名:我的用户名
    密码:我的密码
    这个方法效果很好。

  3. 通过 MSDeploy.exe 命令行(在 Powershell 脚本内)
    $Source = "contentPath='...._PublishedWebsites\MyWebApp'"
    $Destination = "contentPath=MyWebSiteName,computerName='https://fc-wapps-Trial:8172/MsDeploy.axd?Site=WebSiteTest',用户名=MyUsername,密码=MyPassword,AuthType=basic"
    MSDeploy -verb:sync -source:$Source -dest:$Destination -allowUntrusted
    这个方法也很好用。

  4. 通过 MSDeploy.exe 命令行(在 Powershell 脚本内)
    $Source = "contentPath='...._PublishedWebsites\MyWebApp'"
    $Destination = "iisApp=MyWebSiteName/MyWebAppName,computerName='https://fc-wapps-Trial:8172/MsDeploy.axd?Site=WebSiteTest/MyWebAppName',用户名=MyUsername,密码=MyPassword,AuthType=基本的”
    MSDeploy -verb:sync -source:$Source -dest:$Destination -allowUntrusted
    这个方法行不通。我收到以下错误。
    错误代码:ERROR_USER_UNAUTHORIZED
    更多信息:使用 Web 管理服务连接到目标计算机(“MyServerName”),但无法授权。确保您使用正确的用户名和密码、您要连接的站点存在,并且凭据代表有权访问该站点的用户。
    错误:远程服务器返回错误:(401)未经授权。

我正在查看方法 2 使用的实际 MSDeploy 命令是什么,我得到了类似以下内容的信息:
msdeploy.exe
-source:manifest='...\MyWebApp.SourceManifest.xml'
-dest:auto,ComputerName='https://MyServerName:8172/MsDeploy.axd?site=WebSiteTest',UserName='MyUsername',Password='MyPassword',IncludeAcls='False',AuthType='基本的'
-动词:同步
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:证书扩展
-skip:objectname='dirPath',absolutepath='...\App_Data$'
-setParam:kind='ProviderPath',scope='IisApp',match='^...\PackageTmp$',value=WebSiteTest/WebAppTest
-setParam:kind='ProviderPath',scope='setAcl',match='^..\PackageTmp$',value=WebSiteTest/WebAppTest
-允许不受信任
-重试尝试=2
现在这似乎与我在方法 4 中使用的内容并不接近。我尝试自己运行它,但没有成功,但我认为我无法正确地重新创建所有这些参数。

所以我的问题是:
- 我在方法 4 中做错了什么?
- 如何使用 MSDeploy.exe 命令将 Web 应用程序部署为 IIS7 中的网站应用程序


预先感谢您的帮助
尤利安

最佳答案

我遇到了和你一样的问题。我通过仅使用网站名称解决了这个问题 https://computername:8172/msdeploy.axd?site= {仅网站名称}。然后使用 -setParam IIS Web 应用程序名称= {此处为您的 Web 应用程序名称} 在参数中设置您的 Web 应用程序路径或使用参数文件。一切都部署得很好。

似乎仅需要站点查询字符串值来授权请求​​。我还没有找到任何来自 MS 的关于任何其他可能解决此问题的查询字符串参数的明确文档。但我实际测试了2个案例。 1) 部署到IIS 7.5中的网站,此参数是必需的。 2) 部署到网站下的Web应用程序,这个参数实际上是可选的,但如果你想包含它,那么它必须是根网站。

您实际上在这里回答了自己的问题,只是可能没有意识到。

关于msdeploy - 使用 MSDeploy 命令的 Web 应用程序部署问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9426554/

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