У меня есть устаревшее приложение ASP.NET 4.0 Webforms, которое уже некоторое время находится в производстве. Сейчас я добавляю к нему дополнительную функциональность в виде службы WebAPI REST.
Добавление пакетов WebAPI NuGet также добавило запись в мою web.config
настройку версии среды выполнения пакета NewtonSoft.Json:
Теперь, поскольку моя конфигурация «разделена», я хотел поместить ее в отдельный файл runtime.config
и ссылаться на нее из основного файла web.config
:
<runtime configSource="runtime.config" />
Когда я это делаю, вдруг моя регистрация маршрутов WebAPI в global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
...
// Route #1
GlobalConfiguration.Configuration.Routes.MapHttpRoute("Route1", "test/{list}/{check}", new { Controller = "Devices" });
...
}
терпит неудачу с исключением:
Исключение System.IO.FileLoadException не было обработано кодом пользователя
Сообщение = файл или сборка "Newtonsoft.Json, версия = 4.5.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed" или зависимость не найдена. Source=System.Net.Http.Formatting
FileName=Newtonsoft.Json, версия=4.5.0.0, культура=нейтральная, PublicKeyToken=30ad4fe6b2a6aeed
Мне кажется, что внешнее runtime.config
не читается одновременно с содержимым самого web.config
......, что для меня довольно удивительно, я ожидал, что весь web.config
, включая любые "внешние " файлы подконфигурации будут считаны до выполнения любого кода в global.asax.cs
...
Любые идеи? Я даже не знаю, где искать такой уровень подробной информации в MSDN....