使用 WebDeploy (MSDeploy) 部署到 Microsoft Azure 网站目标不起作用
Using WebDeploy (MSDeploy) to deploy to a Microsoft Azure Website target doesn't work
我正在尝试通过 Visual Studio 2015 的 "Publish" 功能将我的 Web 应用程序部署到 Azure website/app 服务暂存槽,但我收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:由于套接字错误正在重试同步(10054) 发生。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 1 次,共 10 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 2 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 3 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 4 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 5 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 6 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 7 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 8 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 9 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 10 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):错误:Web 部署任务失败。 (无法将数据写入传输连接:现有连接被远程主机强行关闭。)
发布部署失败。
我到处搜索解决方案。我试过重新创建一个暂存槽。我尝试在网上搜索对错误消息任何部分的任何引用;但没有可用的解决方案。
我正在使用 Visual Studio 2015 Update 3。它是一个 .NET 4.5.1 网络应用程序。
在事件日志中还有另一条错误消息:
错误代码:999 异常消息:无法将数据写入传输连接:远程主机强行关闭了现有连接。异常堆栈跟踪:现有连接被远程主机强行关闭
在 System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] 缓冲区,SocketFlags socketFlags)
在 System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] 缓冲区)
--- 内部异常堆栈跟踪结束 ---<br>
无法将数据写入传输连接:远程主机强行关闭了现有连接。
在 System.Net.ConnectStream.InternalWrite(布尔异步、Byte[] 缓冲区、Int32 偏移量、Int32 大小、AsyncCallback 回调、对象状态)
在 System.Net.ConnectStream.Write(字节 [] 缓冲区,Int32 偏移量,Int32 大小)
在 System.IO.BufferedStream.Flush()
at System.IO.BufferedStream.Dispose(布尔处理)
在 System.IO.Stream.Close()
在 System.IO.BinaryWriter.Dispose(布尔处理)
在 System.IO.BinaryWriter.Close()
在 Microsoft.Web.Deployment.PackageSerializer.Dispose()
在 Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject、DeploymentSyncContext syncContext、Nullable1 syncPass、String syncSessionId)
在 Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject、DeploymentSyncOptions syncOptions、PayloadTable payloadTable、ContentRootTable contentRootTable、Nullable1 syncPassId、String syncSessionId)
在 Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
不过,我相信以上是转移注意力的说法;我想这是一个问题:
Retrying operation 'Serialization' on object sitemanifest (sourcePath).
看来重试了10次都失败了;这可能意味着打开的 MSDeploy 连接将关闭,导致第二次失败。
请注意,在发布向导中,我单击了 "Validate connection" 按钮,它出现了一个绿色勾号
我们在部署到本地服务器时遇到了这个问题,经过大量故障排除后,我们的网络团队发现了一个拦截这些数据包并丢弃它们的网络问题。我们通过使用 WireShark 监控网络流量发现了 where/when 问题的发生。网络团队使用他们的工具进一步研究以找到问题。抱歉,我不知道他们实际上做了什么来解决这个问题。
您可以尝试从不同的网络(星巴克、家里、任何地方)进行部署以验证这是您的问题。
经过一个多星期的努力,今天成功了。我这边没有任何变化,所以 Microsoft 一定已经修复了 Azure 中的一个问题。
Microsoft 几乎已经确认这是一个错误。不过,他们正在努力重现该问题。
解决方法是将一个新的应用程序设置放入 Azure 门户上的 Web 应用程序,称为 WEBSITE_WEBDEPLOY_USE_SCM
并将值设置为 false
。然后部署工作正常。
我正在尝试通过 Visual Studio 2015 的 "Publish" 功能将我的 Web 应用程序部署到 Azure website/app 服务暂存槽,但我收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:由于套接字错误正在重试同步(10054) 发生。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 1 次,共 10 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 2 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 3 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 4 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 5 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 6 次。
更新文件 (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll)。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 7 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 8 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 9 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):警告:重试同步,因为发生套接字错误 (10054)。<br>
正在对象站点清单 (sourcePath) 上重试操作 'Serialization'。尝试 10 次中的 10 次。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):错误:Web 部署任务失败。 (无法将数据写入传输连接:现有连接被远程主机强行关闭。)
发布部署失败。
我到处搜索解决方案。我试过重新创建一个暂存槽。我尝试在网上搜索对错误消息任何部分的任何引用;但没有可用的解决方案。
我正在使用 Visual Studio 2015 Update 3。它是一个 .NET 4.5.1 网络应用程序。
在事件日志中还有另一条错误消息:
错误代码:999 异常消息:无法将数据写入传输连接:远程主机强行关闭了现有连接。异常堆栈跟踪:现有连接被远程主机强行关闭
在 System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] 缓冲区,SocketFlags socketFlags)
在 System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] 缓冲区)
--- 内部异常堆栈跟踪结束 ---<br>
无法将数据写入传输连接:远程主机强行关闭了现有连接。
在 System.Net.ConnectStream.InternalWrite(布尔异步、Byte[] 缓冲区、Int32 偏移量、Int32 大小、AsyncCallback 回调、对象状态)
在 System.Net.ConnectStream.Write(字节 [] 缓冲区,Int32 偏移量,Int32 大小)
在 System.IO.BufferedStream.Flush()
at System.IO.BufferedStream.Dispose(布尔处理)
在 System.IO.Stream.Close()
在 System.IO.BinaryWriter.Dispose(布尔处理)
在 System.IO.BinaryWriter.Close()
在 Microsoft.Web.Deployment.PackageSerializer.Dispose()
在 Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject、DeploymentSyncContext syncContext、Nullable1 syncPass、String syncSessionId)
在 Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject、DeploymentSyncOptions syncOptions、PayloadTable payloadTable、ContentRootTable contentRootTable、Nullable1 syncPassId、String syncSessionId)
在 Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
不过,我相信以上是转移注意力的说法;我想这是一个问题:
Retrying operation 'Serialization' on object sitemanifest (sourcePath).
看来重试了10次都失败了;这可能意味着打开的 MSDeploy 连接将关闭,导致第二次失败。
请注意,在发布向导中,我单击了 "Validate connection" 按钮,它出现了一个绿色勾号
我们在部署到本地服务器时遇到了这个问题,经过大量故障排除后,我们的网络团队发现了一个拦截这些数据包并丢弃它们的网络问题。我们通过使用 WireShark 监控网络流量发现了 where/when 问题的发生。网络团队使用他们的工具进一步研究以找到问题。抱歉,我不知道他们实际上做了什么来解决这个问题。
您可以尝试从不同的网络(星巴克、家里、任何地方)进行部署以验证这是您的问题。
经过一个多星期的努力,今天成功了。我这边没有任何变化,所以 Microsoft 一定已经修复了 Azure 中的一个问题。
Microsoft 几乎已经确认这是一个错误。不过,他们正在努力重现该问题。
解决方法是将一个新的应用程序设置放入 Azure 门户上的 Web 应用程序,称为 WEBSITE_WEBDEPLOY_USE_SCM
并将值设置为 false
。然后部署工作正常。