Есть приложение на .ТУЕ 4.6.1, собирается нормально. Но при запуске выдает такую хрень:
Exception thrown: 'System.MissingMethodException' in System.Web.Http.dll
Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.
Эта самая System.Web.Http.dll лежит себе в фолдере bin. И метод get_Request() там вполне себе есть, судя по ILSPY. Что надо сделать чтобы приложение перестало падать?
S>Есть приложение на .ТУЕ 4.6.1, собирается нормально. Но при запуске выдает такую хрень:
S>S>Exception thrown: 'System.MissingMethodException' in System.Web.Http.dll
S>Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.
S>Эта самая System.Web.Http.dll лежит себе в фолдере bin. И метод get_Request() там вполне себе есть, судя по ILSPY. Что надо сделать чтобы приложение перестало падать?
MissingMethodException чаще всего появляется в результате вызова несуществующего метода через reflection.
Для начала нужно убедиться, что мы сами ничего такого не делаем.
Далее, нужно понять, где конкретно возникает ошибка и что при этом пытается сделать фреймворк.
Если есть стектрейс — смотрим его, смотрим исходники .NET.
Если нет — запускаемся под отладчиком, смотрим им.
Допустим, мы поняли, что действительно идет обращение к System.Web.Http.Controllers.HttpActionContext.get_Request() в System.Web.Http.dll.
Значит, в рантайме подгружается какая-то левая версия System.Web.Http.dll.
Берем старый добрый
Fuslog, смотрим какие сборки грузятся.
Как вариант, если не хочется возиться с Fuslog — подписываемся на AppDomain.AssemblyLoad, смотрим там, откуда подтягивается сборка.
Здравствуйте, senglory, Вы писали:
S>Есть приложение на .ТУЕ 4.6.1, собирается нормально. Но при запуске выдает такую хрень:
S>S>Exception thrown: 'System.MissingMethodException' in System.Web.Http.dll
S>Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.
Попробуй сделать очистку проекта, потом закрыть студию и ручками удалить весь bin, obj, properties (своё только там не потри!), запустить студию и сделать полную пересборку.
RD>Берем старый добрый Fuslog, смотрим какие сборки грузятся.
Смущает в его описании вот что:
The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log.
При чем тут ИЕ, если сайт, с к-рым работаю , рассчитан на Chrome? И как обойтись без ИЕ в таком случае, если до места падения с ИЕ просто не дойти — сам ИЕ раньше отвалится?
S>Смущает в его описании вот что:
S>The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log.
S>При чем тут ИЕ, если сайт, с к-рым работаю , рассчитан на Chrome? И как обойтись без ИЕ в таком случае, если до места падения с ИЕ просто не дойти — сам ИЕ раньше отвалится?
Действительно, причем тут IE.
Здравствуйте, senglory, Вы писали:
S>Есть приложение на .ТУЕ 4.6.1, собирается нормально. Но при запуске выдает такую хрень:
S>S>Exception thrown: 'System.MissingMethodException' in System.Web.Http.dll
S>Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.
S>Эта самая System.Web.Http.dll лежит себе в фолдере bin. И метод get_Request() там вполне себе есть, судя по ILSPY. Что надо сделать чтобы приложение перестало падать?
Вроде гуглится?
get_Request method not found
S>>Есть приложение на .ТУЕ 4.6.1, собирается нормально. Но при запуске выдает такую хрень:
S>>S>>Exception thrown: 'System.MissingMethodException' in System.Web.Http.dll
S>>Method not found: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'.
S>>Эта самая System.Web.Http.dll лежит себе в фолдере bin. И метод get_Request() там вполне себе есть, судя по ILSPY. Что надо сделать чтобы приложение перестало падать?
bnk>Вроде гуглится?
bnk>get_Request method not found
Да, вот этот линк
помог решить проблему. Странно только что когда я гуглил, то мне сперва
этот линк выдало, но он не помог.