Файл /test.aspx не существует.Исключение CheckVirtualFileExists - PullRequest
0 голосов
/ 06 декабря 2018

При размещении веб-сайта в веб-приложении Azure я получаю эту ошибку при попытке получить доступ к несуществующему файлу aspx .

Я ожидаю получить ответ 404,но вместо этого я получаю исключение 500.

Я запрашиваю другой тип файла, я получаю ожидаемый ответ 404.

Когда я запускаю тот же сайт на IIS, я получаю ожидаемое 404 для aspxfile

Трассировка неудачных запросов : Ссылка на трассировку неудачных запросов

Трассировка стека

System.Web.HttpException (0x80004005): The file '/test.aspx' does not exist. at System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath
 at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate
 at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate
 at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound
 at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp
 at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath
 at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute(
 at System.Web.HttpApplication.<>c__DisplayClass285_0.<ExecuteStepImpl>b__0(
 at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step
 at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

1 Ответ

0 голосов
/ 06 декабря 2018

Я ожидаю получить ответ 404, но вместо этого получаю исключение 500.

Конвейер ASP.NET пытается найти обработчик для запроса, заканчивающегося /test.aspx, которая фактически является самой страницей, если вы не перенаправили запрос на какой-либо другой URL.

Если он не может найти этот обработчик, вы получите ошибку. Это не 404, потому что запрос даже не обработан. Таким образом, фактический код состояния возвращается 500.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...