繁体   English   中英

从DefaultAppPool下运行msdeploy.exe会产生奇怪的行为

[英]Run msdeploy.exe from under DefaultAppPool produces weird behaviour

介绍

我有这个ASP.NET Web应用程序,我想为其用户提供一种通过POST请求通过zip文件更新该应用程序的方法,该文件包含该应用程序的较新版本。

成功接收,存储和使用zip文件时,我发现msdeploy.exe程序无法正常工作,这意味着我的应用程序没有得到更新。

我正在使用以下命令行语法:

msdeploy -verb:sync -source:package={0} -dest:auto -enableRule:DoNotDeleteRule

(其中{0}被替换为zip文件的完整路径)

问题

虽然通过Windows©Shell手动成功安装了更新, msdeploy从Web应用程序启动msdeploy 没有这样做 我正在使用的代码:

ProcessStartInfo info = new ProcessStartInfo()
{
    FileName = Path.Combine(workingDir, "msdeploy.exe"),
    WorkingDirectory = workingDir,
    CreateNoWindow = true,
    Arguments = @"-verb:sync -source:package={0} -dest:auto -enableRule:DoNotDeleteRule -verbose".Formatted(filename.Enquote()),
    UseShellExecute = false,
    RedirectStandardOutput = true,
};

Process deploy = Process.Start(info);
deploy.Start();

调试尝试

我已将程序的输出重定向到一个文件中,因此可以将其与理想的文件进行比较,即一种实际可行的手动方法。

有效的msdeploy输出(通过我的Windows帐户+ Windows Shell运行):

Info: Updating file (Default Web Site/ElQueue\bin\AutoMapper.dll).
Info: Updating file (Default Web Site/ElQueue\bin\Contracts.dll).
...
Info: Updating file (Default Web Site/ElQueue\Views\Web.config).
Info: Updating file (Default Web Site/ElQueue\Web.config).
Info: Adding ACL's for path (Default Web Site/ElQueue)
Info: Adding ACL's for path (Default Web Site/ElQueue)
Total changes: 27 (1 added, 0 deleted, 26 updated, 0 parameters changed, 803122 bytes copied)

msdeploy输出msdeploy (通过Process.Start运行,因此是IIS AppPool \\ DefaultAppPool IIS的虚拟帐户):

Warning: BACKUP_FAILED - Skipping backup because it failed due to an unknown reason.яFor more information, contact your server administrator.
Info: Adding sitemanifest (sitemanifest).
Info: Creating application (Default Web Site/ElQueue)

就这样。 不多。 没有文件更新,什么都没有。 应用程序的文件保持不变。

因此,如何以正确的方式更新我的Web应用程序?

我以为msdeploy是这样,但是它似乎无法与默认的IIS应用程序池一起使用。

您如何验证您的用户? 如果是Windows身份验证,最好的选择是配置Web部署委托规则 使您的池帐户身份成为本地管理员的一部分可能会遇到严重的安全问题。

通过使用lusrmgr.msc管理控制台工具将IIS AppPool\\DefaultAppPool用户添加到Administrators组中来解决此问题,然后在此之后重新启动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM