【发布时间】:2015-03-11 07:43:09
【问题描述】:
我需要将部署的 azure worker 角色中的一个 dll 文件替换为我修改过的一个,因为角色包含错误并且我没有发布标签。我正在尝试通过 rdp 执行此操作,但是当我尝试将新的 dll 复制到 approot 文件夹时,VM 告诉我旧的 dll 文件已在另一个程序中打开并且无法重播。
【问题讨论】:
我需要将部署的 azure worker 角色中的一个 dll 文件替换为我修改过的一个,因为角色包含错误并且我没有发布标签。我正在尝试通过 rdp 执行此操作,但是当我尝试将新的 dll 复制到 approot 文件夹时,VM 告诉我旧的 dll 文件已在另一个程序中打开并且无法重播。
【问题讨论】:
这不是一个好主意。您应该通过重新打包部署并执行更新来做到这一点。通过尝试通过 RDP 执行此操作,您可以替换文件,但如果角色出现故障或被移动,那么当 Windows Azure 恢复角色时,更改将消失,因为它将重新部署它知道的最后一个包,所以你d 回到包含错误的 dll。
至于为什么它告诉你它是开放的,是因为工人角色最有可能在积极使用它。您必须停止工作角色进程才能替换它。最好的选择仍然是执行整个包的更新。
有关更新如何发生的更多信息,您可以查看此文档:http://msdn.microsoft.com/en-us/library/windowsazure/hh472157.aspx
【讨论】:
我同意 MikeWo 关于重新打包和更新部署的建议。 但是,如果您想删除单个 DLL 并检查修复是否有效。你可以杀死 WaWorkerHost.exe - 图片中蓝色突出显示的进程。然后你可以替换DLL。
【讨论】: