Не удалось загрузить файл или сборку "System.Web.Mvc"
Мой новый веб-приложение ASP.NET MVC работает на моей рабочей станции разработки, но не работает на моем веб-сервере...
Ошибка сервера в приложении "/".
Ошибка конфигурации
Описание: Произошла ошибка при обработке файла конфигурации, необходимого для обслуживания этого запроса. Ознакомьтесь с конкретными сведениями об ошибках ниже и соответствующим образом измените свой файл конфигурации.
Сообщение об ошибке Parser: Не удалось загрузить файл или сборку "System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одна из его зависимостей. Система не может найти указанный файл.
Ошибка источника:
Line 44: <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45: <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46: <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47: <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48: <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Исходный файл: C:\inetpub\www.example.org\web.config Линия: 46
График загрузки сборки: Следующая информация может помочь определить, почему сборка "System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" не может быть загружена,
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
Информация о версии: Версия Microsoft.NET Framework: 2.0.50727.3053; Версия ASP.NET: 2.0.50727.3053
Мне нужно установить AspNetMVCBeta-setup.msi на сервер? Или есть другой установщик для серверов?
![enter image description here]()
Ответы
Ответ 1
Я просто написал сообщение в блоге, обращаясь к этому. Вы можете установить ASP.NET MVC на свой сервер, или вы можете выполнить шаги здесь.
РЕДАКТИРОВАТЬ: (по jcolebrand) Я прошел через эту ссылку, затем имел ту же проблему, что Victor ниже, поэтому я предлагаю вам также добавить их:
* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor
Ответ 2
Я столкнулся с той же проблемой, что и sgriffinusa.
В дополнение к ссылкам в статье Фила предлагается: http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx. Я добавил:
* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor
Godaddy Deployment работала отлично. Выключите пользовательские ошибки и добавьте ссылки для исправления ошибок. Это должно привести вас в правильном направлении.
Ответ 3
Установка MVC непосредственно на вашем веб-сервере является одним из вариантов, так как тогда сборки будут установлены в GAC. Вы также можете разворачивать сборки, которые могут помочь вашему серверу очистить сборку до выпуска, пока не появится окончательная версия.
Фил Хаак опубликовал пару дней назад хорошую статью о том, как развернуть MVC вместе с вашим приложением, поэтому нет необходимости устанавливать напрямую:
http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx
Ответ 4
Я столкнулся с этой же проблемой, пытаясь развернуть мое веб-приложение MVC3 Razor на общем хостинге GoDaddy. Есть некоторые дополнительные DLL файлы, на которые нужно ссылаться. Подробности здесь: http://paulmason.biz/?p=108
В основном вам нужно добавить ссылки на следующее в дополнение к тем, которые перечислены в сообщении @Haacked, и установить их для развертывания локально, как описано.
- Microsoft.Web.Infrastructure
- System.Web.Razor
- System.Web.WebPages.Deployment
- System.Web.WebPages.Razor
Ответ 5
В VS2010 щелкните правой кнопкой мыши проект в обозревателе решений и выберите "Добавить развертываемые зависимости". Затем установите флажки, связанные с MVC, в следующем диалоговом окне.
Это создает в проекте папку '_bin_deployableAssemblies', которая содержит все DLL файлы, упомянутые в других ответах. Я считаю, что они копируются в папку bin при создании пакета развертывания.
Ответ 6
Простое исправление. В VS2010 щелкните правой кнопкой мыши проект MVC, выберите "Добавить разворачиваемые зависимости...", выберите нужные параметры и нажмите "ОК"
Ответ 7
Мы хотим добавить его, потому что мы создаем библиотеку классов, которая его использует.
Для меня это здесь...
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies
Ответ 8
Имел ту же самую проблему и добавил все сборки, которые они сказали, но все же получил ту же ошибку.
вам нужно сделать " Конкретная версия" = False.
![Specific version should be false.]()
Ответ 9
Быстрое и простое решение.. Я столкнулся с этой проблемой с Microsoft.AspNet.Mvc -Version 5.2.3, и после прохождения всех этих потоков я нашел простейшее решение.
Просто выполните следующие действия:
- Откройте диспетчер пакетов NuGet в Visual Studio для вашего проекта.
- Поиск Microsoft.AspNet.Mvc
- При обнаружении измените действие на удаление и удаление его.
- После этого установите его еще раз и попробуйте сейчас
Это автоматически исправит все проблемы со ссылками.
См. Изображение ниже:
![введите описание изображения здесь]()
Ответ 10
Если вы НЕ используете хостинг-провайдера, и у вас есть доступ к серверу для установки... Затем установите средства обновления MVC 3, сделайте это... это сэкономит вам много часов на сервере Windows 2003/IIS6 машина., Я прокомментировал эту страницу здесь Несоответствие номера версии Nuget.Core.dll
Ответ 11
В дополнение к сообщению Haack, Hanselman также имеет аналогичную должность. BIN Развертывание ASP.NET MVC 3 с помощью Razor на Windows Server без установки MVC
Для меня решение "Копировать локальное = истинное" было недостаточно, потому что ссылки на проект сайта не включали все отсутствующие DLL файлы. Как упоминает Скотт в своем посте, мне также нужно было получить дополнительные DLL из следующей папки в моей коробке разработки: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies. Сообщение об ошибке сообщило мне, какая DLL отсутствовала (System.Web.Infrastructure, System.Web.Razor и т.д.). Я продолжал добавлять каждую пропущенную dll, один за другим, пока она не сработала.
Ответ 12
Я сделал "Update-Package -reinstall Microsoft.AspNet.Mvc", чтобы исправить его в Visual Studio 2015.
Ответ 13
Этот пост в блоге может быть дубликатом Фила, но он может помочь:
http://www.tugberkugurlu.com/archive/deployment-of-asp-net-mvc-3-rc-2-application-on-a-shared-hosting-environment-without-begging-the-hosting-company
Ответ 14
Также проверьте версию сборки в файле web.config в папке Views и убедитесь, что она соответствует. Иногда я забываю, что в этом месте есть второй web.config.
Ответ 15
У меня была такая же проблема с кучей файлов сборки после перемещения проекта в другое решение.
Для меня файл web.config
пытался добавить эту сборку:
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Мысль о том, что ссылка в проекте указывала на версию 3.0.0.0
(щелкните ссылку и прокрутите вниз до свойств). Поэтому я просто изменил ссылочную версию в файле web.config
.
Я не знаю, было ли это всего лишь какая-то ошибка. Проблема с добавлением всех других ссылок заключалась в том, что ссылки появились в файле конфигурации, но на самом деле он вообще не упоминался в проекте (внутри проводника решений), а необходимые файлы не копировались с остальными файлами проекта, вероятно, из-за отсутствия "copy local = true"
Теперь я не смог найти эти сборки в добавляемых сборках (щелкнув правой кнопкой мыши ссылку и попытавшись добавить их из сборок или расширений). Вместо этого я создал новое решение MVC, которое добавило все собранные нами сборки и ссылки, которые мне нужны, и найти их в новых ссылках на проекты в проводнике решений и найти их путь в окне свойств для ссылки.
Затем я просто скопировал библиотеки, которые мне нужны, в другой проект и ссылался на них.
Ответ 16
Пробовав все и все еще не получилось, это было моим решением:
я вспомнил, что у меня было и последнее обновление версии MVC в моей Visual Studio, поэтому я запускаю проект из другой Visual studio (на другом компьютере), а затем загружал dll-s, и это сработало.
возможно, это поможет кому-то...
Ответ 17
Я использую Jenkins с проектами .net и имел проблемы с ссылками MVC 4.
Я, наконец, решил свою проблему, используя функциональность поисковой системы .Net, основанная на реестре, используя:
"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx"
Вы можете создать подраздел и установить ключ по умолчанию на "c:\myreferenceedir", например.
Он сохранил меня с версиями MVC, а также с веб-страницами ASP.net.
Полезно добавлять ссылки на "Добавить справочный диалог"
http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-assembly-in-gac-and-make-it-show-in-add-reference-dialog/
Ответ 18
Я добавил "Microsoft ASP.NET Razor", используя "Управление пакетами NuGet".
С помощью добавления ссылок по какой-то причине у меня только были System.Web.Helpers 1.0.0 и 2.0.0... но не 3.0.0.
Другой способ, который сработал, состоял в том, чтобы удалить ссылки на System.Web.Mvc и System.Web.Http... затем повторно добавить их, бросив в расположение пакетов в файле csproj (вы можете легко редактировать проект с текстовым редактором):
<Reference Include="System.Web.Http">
<HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>
<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
Ответ 19
Как отмечали другие, добавьте эти ссылки в визуальные студии с Copy Local
, установленными на true
. (Мне также пришлось добавить System.Web.Webpages
)
Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages
Ответ 20
Важным моментом является файл web.config. Некоторые пакеты могут блокировать переадресацию привязки, вызывая хаос (пакет изгоев был в домашнем пакете, в котором я не удалял файл web.config из пакета или не убедился, что web.config в в пакете нет никаких переадресаций привязки. Например, удалив дубликат и неверный node разрешает этот
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
путем удаления строк с 8 по 24 исправляет сборку.