在VS2010和2012中的发布向导错误

6
我一直使用VS2010中的Publish Wizard来部署我的MVC应用程序,在这方面我没有任何问题,但是间歇性地,发布将会以以下错误失败。
“Error 23 Web deployment task failed.(无法完成对远程代理URL“https://webserver:8172/msdeploy.axd?site=mysite”的请求。) 无法完成对远程代理URL“https://webserver:8172/msdeploy.axd?site=mysite”的请求。该请求被取消:已分离其基础RCW的COM对象无法使用。”
看起来这种情况发生在随机的时间,但我越久使用VS,就越容易发生。解决它的保障方法是重新启动VS,但如果我长时间(整天或过夜)不关闭VS,它就会像钟表一样定时发生,并且每次发生都需要重新启动VS,这使我非常沮丧。我实际上不记得错误号是否总是23,我会在下次它发生时查找它,但是否有其他人遇到过这个问题或者知道可能是什么原因?
更新: 在使用VS2012时,问题仍然存在。

我也看到了同样的问题,并已向微软的VS和Web Deploy团队报告了此问题。 - tdykstra
2个回答

11

在我们完成Web发布的RTW组件后不久,我们发现了这个错误。为了给您一些背景,这个潜在问题对我们来说非常难以发现。经过一些彻底的调查,我们能够确定问题与WPF使用的singleton RCW对象如何管理Internet连接以及请求是否在STA或MTA线程上发生有关。

幸运的是,我们能够解决这个潜在问题并已准备好修复程序。我们计划在未来几个月更新Web发布组件,这应该会一劳永逸地解决此问题。在那之前,解决方法是关闭VS,然后重新打开它。我知道这不是一个理想的解决方案,但目前这是我们所能做到的最好的。


非常感谢您的关注并发布您的发现,我真的很感激。我期待着尝试更新的Web Publishing bits! - Nick Albrecht
这个问题在VS2012更新1中修复了吗? - Jack Ukleja
修复程序可在 Azure SDK 中获得。http://www.windowsazure.com/en-us/develop/net/ - Sayed Ibrahim Hashimi
我刚刚遇到了同样的错误,所以我认为它没有包含在VS2012 Update 1中,说实话这让我感到很奇怪。我不做任何Azure开发,那我是否仍然需要安装Azure SDK才能获得此修复程序? - Nick Albrecht
抱歉,修复程序只能通过Azure SDK获得。我们也听到了其他人的反馈。目前它在Azure SDK中的原因是为此建立一个专用的Feed将非常昂贵(即我们无法发布其他功能,因为要处理这个问题)。在这里最好的做法是在http://aspnet.uservoice.com上创建一个建议并让其得到投票支持。 - Sayed Ibrahim Hashimi

0
根据 http://www.asp.net/mvc/tutorials/deployment/deployment-to-a-hosting-provider/deployment-to-a-hosting-provider-creating-and-installing-deployment-packages-12-of-12
“已从其基础 RCW 中分离的 COM 对象无法使用。” 场景 你一直成功地使用单击发布来部署你的应用程序,然后开始出现此错误:
Web 部署任务失败。(无法完成到远程代理 URL 'https://serverurl.com/msdeploy.axd?site=sitename' 的请求。)无法完成到远程代理 URL 'https://url/msdeploy.axd?site=sitename' 的请求。该请求已中止:请求已取消。已从其基础 RCW 中分离的 COM 对象无法使用。
解决方案如下:
可能的原因和解决办法通常只需关闭和重新启动 Visual Studio,即可解决此错误。

这不是解决方案,而是一种权宜之计。这就像告诉某人每次他们的互联网断开时都必须重新启动他们的电缆调制解调器一样。我正在寻找一些能够解释为什么会发生这种情况以及如何防止它发生的东西。我在Visual Studio 2012中也遇到了这个错误,所以这不是他们已经修复的问题。 - Nick Albrecht
@Yarx 是的,我同意这不是一个解决方案。但是重新启动可以让人们继续工作。 - Roger
是的,但我在问题中已经说明了重新启动Visual Studio可以解决问题,我正在寻求关于导致此问题的反馈,以便我可以防止它再次发生。 - Nick Albrecht
如果有助于调试,
  • 对于我来说,在长时间部署到子域:subdomain.awesam.net时一切都正常
  • 然后在发布窗口中,我将站点更改为awesam.net并发布了它。
  • 然后在发布窗口中,我将其改回subdomain.awesam.net,但它停止工作了。我无法复制这种情况。
- saml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接