Спорадическое исключение InvalidOperationException: не удалось сопоставить путь.C#

Место общения программистов C#
Ответить
Anonymous
 Спорадическое исключение InvalidOperationException: не удалось сопоставить путь.

Сообщение Anonymous »

У меня есть сайт iis, на котором размещено несколько веб-приложений ASP.NET. Я наблюдаю спорадическую проблему, когда некоторые веб-приложения возвращают следующую ошибку сервера (отображается во внешнем интерфейсе/браузере и регистрируется как предупреждение в средстве просмотра событий веб-сервера).

Код: Выделить всё

Exception type: InvalidOperationException
Exception message: Failed to map the path '/MyWebApp1/Scripts/App/Controllers/'.
at System.Web.Configuration.ProcessHostConfigUtils.MapPathActual(String siteName, VirtualPath path)
at System.Web.Configuration.ProcessHostServerConfig.System.Web.Configuration.IServerConfig.MapPath(IApplicationHost appHost, VirtualPath path)
at System.Web.Hosting.MapPathBasedVirtualPathEnumerator..ctor(VirtualPath virtualPath, RequestedEntryType requestedEntryType)
at System.Web.Hosting.MapPathBasedVirtualPathCollection.System.Collections.IEnumerable.GetEnumerator()
at System.Linq.Enumerable.d__97`1.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.d__1.MoveNext()
at System.Web.Optimization.BundleDirectoryItem.ProcessDirectory(BundleContext context, String directoryVirtualPath, VirtualDirectory dirInfo, List`1 files)
at System.Web.Optimization.BundleDirectoryItem.AddFiles(List`1 files, BundleContext context)
at System.Web.Optimization.Bundle.EnumerateFiles(BundleContext context)
at System.Web.Optimization.Bundle.GenerateBundleResponse(BundleContext context)
at System.Web.Optimization.Bundle.GetBundleResponse(BundleContext context)
at System.Web.Optimization.BundleResolver.GetBundleContents(String virtualPath)
at System.Web.Optimization.AssetManager.EliminateDuplicatesAndResolveUrls(IEnumerable`1 refs)
at System.Web.Optimization.AssetManager.RenderExplicit(String tagFormat, String[] paths)
at ASP._Page_Views_Shared__Layout_cshtml.Execute() in C:\Websites\MySite\MyWebApp1\Views\Shared\_Layout.cshtml:line 21
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.WebPages.WebPageExecutingBase.WriteTo(TextWriter writer, HelperResult content)
at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action`1 body)
at System.Web.WebPages.WebPageBase.PopContext()
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.c__DisplayClass21.b__1e(IAsyncResult asyncResult)
at System.Web.Mvc.Controller.b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag)
at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag)
at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.MvcHandler.b__5(IAsyncResult asyncResult, ProcessRequestState innerState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag)
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)
Этот первоначальный запрос, который не удался, предназначен для получения веб-контента для приложения. В это приложение встроен и минимизирован js. Похоже, что код в трассировке стека извлекает отдельные js-файлы из пакета и пытается сопоставить их виртуальные пути с реальными физическими путями, но не может этого сделать.
Проблема произошло уже дважды для двух разных веб-приложений на одном сайте. Но с другими веб-приложениями на том же сайте этого не произошло. Как только это произошло, единственным способом устранить проблему была перезапуск пула приложений и обновление кэша.
  • Мне не удалось воспроизвести проблему, и она кажется спорадическим.
  • Похоже, нет ничего особенного или уникального в разрешениях папок для пулов приложений, в которых возникла проблема, по сравнению с теми, у которых ее не было.
  • li>
    Я не делал ничего, чтобы переименовать сайт или изменить его физические/виртуальные пути.
Существующие темы, которые я видел по этой ошибке, похоже, предполагают либо проблемы с разрешениями, либо несоответствие имен каталогов, но спорадический характер эта проблема, кажется, говорит об обратном.
Из рассмотрения https://referencesource.microsoft.com/# ... references, похоже, что-то не так в MgdMapPathDirect из webengine4.dll. Но я уверен, что есть какой-нибудь способ записать/зафиксировать, что происходит в этой сборке.
Есть ли у кого-нибудь еще идеи?

Подробнее здесь: https://stackoverflow.com/questions/792 ... p-the-path
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»