要在IIS下创建目录并将Web应用添加到IIS,我将此脚本放在Azure DevOps Server部署组作业Powershell任务中:
New-Item -Path "C:\inetpub\wwwroot" -Name "MyNewApp" -ItemType "directory" `
C:\Windows\system32\inetsrv\appcmd.exe add app `
/site.name:"Default Web Site" `
/path:"/MyNewApp" `
/physicalPath:"C:\inetpub\wwwroot\MyNewApp"`
此任务运行时会引发错误:(为清楚起见,删除了时间戳记)
APP对象“默认网站/ MyNewApp”已更改
错误(hresult:80090016,消息:无法提交配置更改。
键集不存在
在以我本人或服务帐户身份登录Powershell控制台执行上述代码后,返回以下消息:
添加了APP对象“默认网站/ MyNewApp”
添加了VDIR对象“默认网站/ MyNewApp”
我可以在IIS管理器中确认已创建目录和应用程序。
我无法在控制台中重现该错误。仅当它作为发布代理运行并通过DevOps Server Web界面启动时,才会发生此错误。
我尝试了以下方法:
更新1 :
我确定尝试将DefaultAppPool应用程序池用作安装程序的一部分时出现“键集不存在”错误。未使用服务帐户设置此应用程序池,但仍使用默认应用程序池标识进行设置。
但是,进行此更改后,我遇到了一个新错误:
APP对象“默认网站/ MyNewApp”已更改
错误(hresult:80070057,消息:无法提交配置更改。
参数不正确。 )
...
进程'appcmd.exe'退出,代码为'87'。
非常感谢任何指导。
更新2 :
我记录了当前正在关注的Microsoft社区问题。您可以here看到它。
答案 0 :(得分:0)
您还可以使用servermanager查看.net实现:
https://docs.microsoft.com/en-us/iis/manage/scripting/how-to-use-microsoftwebadministration
在powershell中使用它应该不会很困难。