2014-10-23 4 views
24

В Visual Studio 2012 я создал проект ASP.NET MVC 4, где целевая структура .NET Framework 4.5. Когда я развернул свой проект на веб-сервере, он дал следующую ошибку:Не удалось загрузить файл или сборку «System.Web.Http.WebHost, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35»

Could not load file or assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file 
specified. 

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.IO.FileNotFoundException: Could not load file or 
assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The system cannot find the file specified. 

Source Error: 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34237 
+0

Использовали ли вы развертывание в Интернете или как его развернуть? – John

+0

@John я опубликовал, а затем скопирую эти файлы на хостинг – user1688401

+0

Можете ли вы напрямую публиковать на сервере? Или использовать веб-развертывание почтового индекса или что-то еще? Это обеспечит включение всех файлов. Также убедитесь, что MVC установлен на сервере. – John

ответ

20

Проверьте папку bin вашего развернутого проекта. Он должен содержать System.Web.Http.WebHost.dll. Если эта DLL находится в этой папке, проверьте ее версию. Если это не 4.0.0.0, вам следует развернуть версию 4.0.0.0 или изменить свою веб-конфигурацию, чтобы использовать другую версию (не очень хорошая идея из-за зависимостей).

+1

Я попробовал, но он дал эту ошибку: http://i.hizliresim.com/R64NGa.png – user1688401

+1

Я сказал вам несколько вариантов попробовать. Какой из них вы попробовали? – IAfanasov

+0

спасибо, что это работает сейчас ... я принял этот ответ – user1688401

11

Попробуйте переустановить пакет Microsoft.AspNet.WebApi. Откройте Диспетчер пакетов консоли и введите:

Update-Package Microsoft.AspNet.WebApi -reinstall 

Будьте осторожны, эта команда удалить все зависимости и вам придется установить их вручную.

+2

спасибо, что это сработало для меня –

+0

Отредактируйте файл packages.config и закомментируйте все ссылки webapi, после чего вы можете запустить установку без предварительной деинсталляции. –

25

У меня была такая же проблема сегодня во время развертывания. Я смог исправить это, отметив сборку, которая будет скопирована в файл развертывания.

Чтобы сделать это, в моем проекте Visual Studio выберите сборку System.Web.Http.Webhost в своих ссылках и измените свойство «Скопировать местное» на «Истина». Я должен был повторить это для нескольких других сборок, которые отсутствовали.

Благодаря этому сайт для кончиков - http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx/

0

Я побежал в этом сегодня после создания новой команды City Build Agent. У нового агента не установлен MVC 4, возможно, часть проблемы. К счастью, я нашел this article, которые привели меня к решению. В Team City я просто обновил Шаг сборки для восстановления Nuget, чтобы он не использовал локальный кеш.

enter image description here

Это работает, потому что кэш может быть установлено сборки бегунов с различными (MVC) рамок, установленных уже.

4

У меня была эта ошибка со старым проектом, в который я возвращался, чтобы немного поработать над этим. Оказывается, проект фактически не использовал WebApi, поэтому я удалил Microsoft.AspNet.WebApi с помощью NuGet. Это решило проблему для меня.

Если бы я действительно нуждался в WebApi, я уверен, что его установка снова устранила бы ошибку.

0

Я знаю, что это ответ, но я думал, что что-то добавлю.

Каждый раз, когда я устанавливаю «копировать локально» в true в файл, вызывая ошибку, я бы опубликовал его и просто получил еще один. Поэтому я только что выбрал все файлы под ссылками и установил их в true. Это поставило вопрос для меня.

Смежные вопросы

 Смежные вопросы