提问人:glazeddoughnut 提问时间:11/7/2023 更新时间:11/9/2023 访问量:74
Azure Devops IIS Web 部署在一台服务器上停止工作。我打破了什么?
Azure Devops IIS Web Deploy stopped working on one server. What did I break?
问:
我一直在多个发布管道中成功使用 IIS Web 部署任务,将 .Net Core 应用部署到一个暂存服务器(服务器 A)。我最近在部署组(服务器 B)中添加了一个额外的基本服务器,并且只添加了在 IIS 中运行 .Net 应用程序所需的内容。
这些版本似乎在两台服务器上都运行良好,但随后我对服务器 B(已安装 ColdFusion 2023)进行了其他更改,这些更改可能导致我的问题,或者可能是一条红鲱鱼。
现在,我在服务器 B 上从 msdeployutility.js 在注册表中找到 MSDeploy 时收到此错误,但部署在错误后继续进行,并使用任务附带的 MSDeploy 部署文件('C:\azagent\A3_work_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\azure-pipelines-tasks-webdeployment-common\MSDeploy3.6\MSDeploy3.6\msdeploy.exe')。
2023-11-06T18:32:02.0306228Z ##[debug]task result: Failed
2023-11-06T18:32:02.0306520Z ##[error]Unhandled: read ENOTCONN
2023-11-06T18:32:02.0307034Z ##[debug]Processed: ##vso[task.issue type=error;]Unhandled: read ENOTCONN
2023-11-06T18:32:02.0307841Z ##[debug]Processed: ##vso[task.complete result=Failed;]Unhandled: read ENOTCONN
2023-11-06T18:32:02.0314542Z ##[error]Error: read ENOTCONN
at Socket._read (net.js:539:20)
at Socket.Readable.read (_stream_readable.js:471:10)
at new Socket (net.js:318:12)
at Object.Socket (net.js:226:41)
at createSocket (internal/child_process.js:280:14)
at ChildProcess.spawn (internal/child_process.js:383:23)
at spawn (child_process.js:551:9)
at Registry.keys (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\winreg\lib\registry.js:539:14)
at getMSDeployLatestRegKey (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\azure-pipelines-tasks-webdeployment-common\msdeployutility.js:133:12)
at Object.<anonymous> (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\azure-pipelines-tasks-webdeployment-common\msdeployutility.js:115:50)
2023-11-06T18:32:02.0321488Z ##[debug]Processed: ##vso[task.issue type=error;]Error: read ENOTCONN
at Socket._read (net.js:539:20)
at Socket.Readable.read (_stream_readable.js:471:10)
at new Socket (net.js:318:12)
at Object.Socket (net.js:226:41)
at createSocket (internal/child_process.js:280:14)
at ChildProcess.spawn (internal/child_process.js:383:23)
at spawn (child_process.js:551:9)
at Registry.keys (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\winreg\lib\registry.js:539:14)
at getMSDeployLatestRegKey (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\azure-pipelines-tasks-webdeployment-common\msdeployutility.js:133:12)
at Object.<anonymous> (C:\azagent\A3\_work\_tasks\IISWebAppDeploymentOnMachineGroup_1b467810-6725-4b6d-accd-886174c09bba\0.229.1\node_modules\azure-pipelines-tasks-webdeployment-common\msdeployutility.js:115:50)
2023-11-06T18:32:02.0325368Z ##[debug]Unable to find the location of MS Deploy from registry on machine (Error : Error: spawn C:\Windows\system32\reg.exe ENOENT)
我尝试在服务器 B 上安装 MSDeploy 3.6,以便密钥位于注册表中,但这并没有改变错误。在服务器 A 上,一切仍然相同,服务器 A 使用已安装的 MSDeploy(“C:\Program Files\IIS\Microsoft Web 部署 V3\msdeploy.exe”),而不是捆绑版本。该版本在服务器 B 上工作时的日志显示,它当时使用了捆绑版本,但在尝试在注册表中查找 MSDeploy 时没有引发错误。
我到底可以改变什么导致这个问题?权限?注册表值?与 ColdFusion 2023 安装捆绑在一起的软件?
答:
请检查服务器 B 上的注册表编辑器中是否存在 MSDeploy 项。如果不存在,请从此页面重新下载 Web 部署并重新安装。如果存在,请检查您是否有权访问它。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3
更新
如果将代理设置为服务,则可以转到 Windows 服务并检查相关生成服务的标识(服务名称为“Azure Pipelines 代理”)。然后打开注册表编辑器,检查用户(网络服务)是否具有对密钥的读取权限。
希望能有所帮助。
评论