Произвольное получение ошибки «System.BadImageFormatException: Index not found» в веб-API после определенных развертываний в службе приложений Azure - PullRequest
0 голосов
/ 26 июня 2018

У меня есть приложение ASP.NET Web API, работающее в службе приложений Azure, которое, в свою очередь, развертывается через Octopus после завершения определения сборки TFS.

После определенных успешных развертываний (ошибок не возникает нив TFS и в Octopus) весь API перестает работать, и все конечные точки отвечают следующей ошибкой:

System.BadImageFormatException
Index not found. (Exception from HRESULT: 0x80131124)

, а трассировка стека выглядит следующим образом:

System.BadImageFormatException: Index not found. (Exception from HRESULT: 0x80131124)
   at System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state)
   at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.BeginExecute(RequestContext requestContext, AsyncCallback callback, Object state)
   at System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(AsyncCallback asyncCallback, Object asyncState, ProcessRequestState innerState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallBeginDelegate(AsyncCallback callback, Object callbackState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.Begin(AsyncCallback callback, Object state, Int32 timeout)
   at System.Web.Mvc.Async.AsyncResultWrapper.Begin[TState](AsyncCallback callback, Object callbackState, BeginInvokeDelegate`1 beginDelegate, EndInvokeVoidDelegate`1 endDelegate, TState invokeState, Object tag, Int32 timeout, SynchronizationContext callbackSyncContext)
   at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
   at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Ошибканемного загадочно, потому что, похоже, это не связано с каким-либо конкретным набором изменений в исходном коде или каким-либо конкретным действием.Вот почему это выглядит случайным.На данный момент единственный способ временно решить эту проблему - это повторно развернуть пакет того же Осьминога.Это восстанавливает API.

Однако было бы полезно понять, что на самом деле происходит с приложением, когда возникает эта ошибка.Какой индекс не найден?Что означает получение BadImageFormatException?

Я подозреваю, что что-то происходит между Octopus и веб-приложением Azure.

Некоторая дополнительная информация:Осьминог версия v2018.6.2Версия TFS: 15.117.27414.0Приложение ASP.NET предназначено для .NET 4.5.2

Другая информация, которую я обнаружил, заключается в том, что после первого развертывания в Octopus (которое вызывает сбой) в журналах я увидел следующую строку:

  17:16:00   Info     |       Successfully deployed to Azure. 0 objects added. 48 objects updated. 0 objects deleted.

Теперь, после второго развертывания в Octopus (повторное развертывание выпуска, который не удался), можно было бы ожидать, что "0 объектов обновлено", но вместо этого я получил следующую строку:

18:48:57   Info     |       Successfully deployed to Azure. 0 objects added. 3 objects updated. 0 objects deleted.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...