Использование WebDeploy (MSDeploy) для развертывания на целевом веб-сайте Microsoft Azure не работает.

Я пытаюсь развернуть свое веб-приложение с помощью функции «Публикация» Visual Studio 2015 в промежуточном слоте веб-сайта/службы приложений Azure, и я получаю следующие ошибки:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 1 of 10. Updating file (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll). C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 2 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 3 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 4 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 5 of 10. Updating file (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll). C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 6 of 10. Updating file (xxxxxxxxxxxxx__staging\bin\EntityFramework.dll). C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 7 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 8 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 9 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Warning : Retrying the sync because a socket error (10054) occurred.
Retrying operation 'Serialization' on object sitemanifest (sourcePath). Attempt 10 of 10. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5): Error : Web deployment task failed. (Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.) Publish failed to deploy.

Я искал буквально везде решение. Я попытался воссоздать промежуточный слот. Я пробовал искать в Интернете любую ссылку на любую часть сообщений об ошибках; но решений нет.

Я использую Visual Studio 2015 Update 3. Это веб-приложение .NET 4.5.1.

В журнале событий также есть еще одно сообщение об ошибке: Error Code: 999 Exception Message: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. Exception Stack Trace: An existing connection was forcibly closed by the remote host at System.Net.Sockets.Socket.MultipleSend(BufferOffsetSize[] buffers, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.MultipleWrite(BufferOffsetSize[] buffers) --- End of inner exception stack trace ---
Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.IO.BufferedStream.Flush() at System.IO.BufferedStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.IO.BinaryWriter.Dispose(Boolean disposing) at System.IO.BinaryWriter.Close() at Microsoft.Web.Deployment.PackageSerializer.Dispose() at Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext, Nullable1 syncPass, String syncSessionId) at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable1 syncPassId, String syncSessionId) at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)

Тем не менее, я считаю, что вышеизложенное является отвлекающим маневром; Я бы предположил, что это проблема с:

Повторная попытка операции «Сериализация» для манифеста сайта объекта (sourcePath).

Похоже, это повторяется 10 раз с ошибкой; это, вероятно, означало бы, что открытое соединение MSDeploy закроется, что вызовет второй сбой.

Обратите внимание, что в мастере публикации я нажал кнопку "Проверить подключение" и появился зеленый флажок


person krisdyson    schedule 22.07.2016    source источник
comment
Зловредные вредоносные программы мешают вашему соединению, обычно это завернутые в термоусадочную пленку. Ничего, что может быть диагностировано кем-то, кто не заглядывает вам через плечо. Просто ошибка сокета Google Azure (10054) произошла для основных хитов.   -  person Hans Passant    schedule 30.07.2016


Ответы (3)


Microsoft в значительной степени подтвердила, что это ошибка. Однако они изо всех сил пытаются воспроизвести проблему.

Обходной путь — поместить новый параметр приложения в веб-приложение на портале Azure с именем WEBSITE_WEBDEPLOY_USE_SCM и установить значение false. Затем развертывание работает нормально.

person krisdyson    schedule 25.04.2017
comment
Спасибо @krisdyson за это, мне потребовалось некоторое время, чтобы найти этот пост. После этого мне также пришлось сбросить и повторно загрузить свой профиль публикации (также сначала перезапустил веб-приложение), и это сработало! - person Ivan; 20.06.2017

У нас возникла эта проблема при развертывании на локальном сервере, и после тщательного устранения неполадок наша сетевая команда обнаружила сетевую проблему, которая перехватывала эти пакеты и отбрасывала их. Мы обнаружили это, отслеживая сетевой трафик с помощью WireShark, чтобы определить, где и когда возникают проблемы. Команда Networking провела дополнительные исследования, используя свои инструменты, чтобы найти проблему. Извините, я не знаю, что они на самом деле изменили, чтобы исправить это.

Вы можете попробовать выполнить развертывание из другой сети (Starbucks, дома и т. д.), чтобы убедиться, что это ваша проблема.

person chief7    schedule 22.07.2016

После недельных попыток сегодня получилось. На моей стороне ничего не изменилось, поэтому Microsoft, должно быть, исправила проблему в Azure.

person krisdyson    schedule 01.08.2016
comment
И сегодня эта проблема снова актуальна. - person krisdyson; 10.08.2016
comment
Вы когда-нибудь добирались до сути этого Кристана? - person Fetchez la vache; 24.04.2017
comment
@Fetchezlavache MS в значительной степени подтвердил, что это ошибка. Есть обходной путь, который я опубликую в качестве ответа сейчас. - person krisdyson; 25.04.2017