Я установил Visual Studio 2013, и когда я запускаю свое приложение, я получаю сообщение об ошибке ниже.
Я понятия не имею, где я должен инициализировать этот объект.
Что делать?
Server Error in '/' Application.
The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.]
System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes() +101
System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) +63
System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) +107
System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +233
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +60
System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408
Это для AlumCloud
c#
.net
asp.net-mvc-routing
Заполнение стека - это то, что я делаю
источник
источник
GlobalConfiguration.Configure(Action<HttpConfiguration> configurationCallback)
будет звонить после настройки обратного вызова.Если вы сделаете это в конце Application_Start, будет слишком поздно, так как был вызван WebApiConfig.Register.
Лучший способ решить эту проблему - использовать новый метод инициализации, заменив в Global.asax:
по
источник
GlobalConfiguration.Configure(config => new WebApiConfig().Register(config));
Я действительно получил эту ошибку, когда я использовал маршрутизацию атрибутов в моем WebApi.
я имел
вместо того
для моего маршрута и получил эту ошибку. Я просто пропустил закрывающую фигурную скобку. Как только я добавил его обратно, эта ошибка больше не возникала.
источник
Это старый, но это первый результат в Google при поиске этой ошибки. После нескольких копаний я смог понять, что происходит.
Значение: если вы пришли из существующего проекта Mvc, все, что вам нужно сделать, это:
ИЛИ
Копать глубже
HttpConfiguration.Configuration имеет свойство «Initializer», определенное следующим образом:
HttpConfiguration.EnsureInitialized () запускает это действие и устанавливает для _initialized значение true
HttpConfiguration.MapAttributeRoutes вызывает внутренний метод AttributeRoutingMapper.MapAttributeRoutes, который устанавливает HttpConfiguration.Initializer.
GlobalConfiguration.Configure работает EnsureInitialized сразу после вызова ваших действий:
Не забывайте, что если вы столкнетесь со стеной, источник asp.net доступен по адресу http://aspnetwebstack.codeplex.com/SourceControl/latest.
источник
У меня была связанная проблема. Иногда вызов
GlobalConfiguration.Configure
несколько раз вызывает эту ошибку. В качестве обходного пути я поместил всю логику инициализации конфигурации в одном месте.источник
Для меня проблема заключалась в том, что я пытался использовать именованные параметры для полей строки запроса в моих маршрутах:
Поля строки запроса автоматически сопоставляются с параметрами и фактически не являются частью определения маршрута. Это работает:
источник
Хотя приведенный выше ответ работает, если incase не установлен, в моем случае этот материал уже был установлен. Отличие состояло в том, что для одного из написанных мною API я поставил перед маршрутом префикс /. пример
. Изменение этого к
исправил это для меня
источник
HttpPrefix
декоратор , а затем для моей индивидуальной конечной точки я имел декоратор:[Route("/")]
. Простая передача пустой строки в маршруте исправила проблему.ЕСЛИ ЭТА ОШИБКА СЧИТАЕТ, ЧТОБЫ ИДЕТ «НИЧЕГО» , то есть ваше приложение какое-то время прекрасно работало, спросите себя: я добавил действие в контроллер или изменил какие-либо маршруты до появления этой ошибки?
Если ответ «да» (и, вероятно, так и есть), вы, вероятно, допустили ошибку в процессе. Неправильное форматирование, копирование / вставка действия и забвение о том, что имена конечных точек уникальны и т. Д., Приведут вас сюда. Предположение, что эта ошибка связана с тем, как ее устранить, может привести к тому, что вы ошибетесь деревом.
источник
Вызов
перед
завершает его выполнение.
источник
Я получил эту ошибку, когда версия Newtonsoft.Json в моем основном проекте отличалась от вспомогательного проекта
источник
Как правило, это исключение возникает, когда шаблоны маршрутов в «Маршрутизации атрибутов» неверны.
Например, я получил это, когда написал следующий код:
В синтаксисе ограничений маршрута {параметр: ограничение} ограничение по умолчанию имеет тип string . Не нужно упоминать это явно.
источник
Я начал получать эту ошибку однажды. После того, как я изменил наше приложение, чтобы позвонить
EnsureInitialized()
я смог увидеть причину.У меня был собственный атрибут, фильтр, для действия. В этом классе атрибутов были сделаны серьезные изменения в пакете NuGet, в котором он живет.
Несмотря на то, что я обновил код и все это скомпилировано, локальный работник IIS загружал старую DLL и не находил члена класса во время инициализации, считывал атрибуты действий и т. Д.
По какой-то причине (возможно, из-за порядка / при инициализации нашего ведения журнала) эта ошибка не была обнаружена, возможно, оставив WebAPI в странном состоянии, пока я не добавил
EnsureInitialized()
который перехватил исключение и обнаружил его.Выполнение правильного
bin
иobj
чистого с помощью удобного сценария решило это.источник
В моем случае я создал веб-сервис в проекте A и запустил его из проекта B, и я получил именно эту ошибку. Проблема заключалась в том, что некоторые .dll-файлы, которые требуются A, отсутствуют в папке build-output-of B. Убедитесь, что эти .dll-файлы доступны и исправили это.
источник
В моем случае я использовал Entity в качестве параметра моего действия, отсутствующего в его «Схеме».
Неправильный атрибут:
Верный :
источник