gpt4 book ai didi

msdeploy - 如何将 "wmsvc=[server]"语法与 dirPath 提供程序一起使用?

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

我正在尝试使用 dirPath 提供程序将 Windows 应用程序部署到远程服务器上的特定路径。我可以使用如下语法将网站毫无问题地部署到同一台服务器:

msdeploy.exe -verb:sync -source=iisApp=C:\SomePath -dest:authType=basic,wmsvc=MyServer,userName=MyUser,password=MyPassword,iis=MySite/MyApp -allowUntrusted

但是,在使用 dirPath 尝试类似的命令时,我收到 401 Unauthorized 错误(出于未知原因):

msdeploy.exe -verb:sync -source=dirPath=C:\SomePath -dest:authType=basic,wmsvc=MyServer,userName=MyUser,password=MyPassword,dirPath=C:\SomeRemotePath -allowUntrusted

我发现在这里唯一可行的方法是切换到使用computerName 语法,如下所示:

msdeploy.exe -verb:sync -source=dirPath=C:\SomePath -dest:authType=basic,computerName=https://MyServer:8172/msdeploy.axd?site=MySite,userName=MyUser ,password=MyPassword,dirPath=C:\SomeRemotePath -allowUntrusted

这很好,但是computerName 要求将站点作为查询字符串参数传递,而本例中的“MySite”实际上是“默认网站”。鉴于我实际上是使用 MSBuild 文件生成此命令行(并使用 Exec 语句执行它),我一生都无法弄清楚如何正确转义此处的空格。如果我在 MSBuild 文件中指定 %20(例如 Default%20Web%20Site),它会在执行命令之前将其解析回空格,这会导致语法无效。如果我尝试双重转义(分别转义 %、2 和 0,例如 Default%25%32%30Web%25%32%30Site),我会返回 401 未经授权的错误。

那么,是否有一些语法或服务器配置允许我在此命令中使用“wmsvc=[server]”,因为它不需要有问题的(不可避免的?)站点查询参数?或者有人可以告诉我如何在执行上面的 MSDeploy 命令的 MSBuild Exec 命令中正确转义“?site=Default Web Site”?

编辑:在有人建议我将默认网站重命名为不带空格的名称之前,是的,这可行,但我正在尝试找到一种方法来避免这种情况,因为我想要一个可以使用的通用解决方案任何给定服务器上 IIS 网站的默认名称。

最佳答案

转义站点参数的正确方法(使用computerName语法时)来自 another关于使用curl的SO帖子,这是通过加倍来转义%符号,例如Default%25%2520Web%25%2520Site。如果没有办法使用 wmsvc 并因此根本不指定站点,这对我来说将有效。

编辑:正如松饼人刚刚指出的那样,只需在整个 computerName 参数(包括 Site 查询参数)周围加上引号,就可以避免对站点名称进行任何棘手的转义。

关于msdeploy - 如何将 "wmsvc=[server]"语法与 dirPath 提供程序一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366138/

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