Не вдалося завантажити файл або збірку "System.Web.Mvc"


200

Мій новий веб-додаток ASP.NET MVC працює на моїй робочій станції з розробки, але не працює на моєму веб-сервері ...


Помилка серверу в програмі '/'


Помилка конфігурації

Опис: Під час обробки файлу конфігурації, необхідного для обслуговування цього запиту, сталася помилка. Перегляньте детальну інформацію про помилки нижче та змініть файл конфігурації відповідним чином.

Повідомлення про помилку парсера: Не вдалося завантажити файл або збірку 'System.Web.Mvc, версія = 1.0.0.0, культура = нейтральна, 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, версія = 1.0.0.0, культура = нейтральна, PublicKeyToken = 31bf3856ad364e35" не вдалося завантажити.

WRN: Ведення журналу прив'язки збірки вимкнено.
Щоб увімкнути журнал помилок при зборах, встановіть значення реєстру [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) на 1.
Примітка. Існує певна ефективність покарань, пов’язана з веденням журналу помилок прив'язки.
Щоб вимкнути цю функцію, видаліть значення реєстру [HKLM \ Software \ Microsoft \ Fusion! EnableLog].

Інформація про версію: Microsoft .NET Framework Версія: 2.0.50727.3053; Версія ASP.NET: 2.0.50727.3053


Чи потрібно мені встановити AspNetMVCBeta-setup.msi на сервер? Або є інший інсталятор для серверів?

введіть тут опис зображення

Відповіді:


215

Я щойно написав допис у блозі, присвячений це Ви можете встановити ASP.NET MVC на свій сервер АБО ви можете виконати тут дії .


EDIT: (автор jcolebrand) Я перейшов за цим посиланням, потім був той самий випуск, що і Віктор нижче , тому я пропоную вам також додати це:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

6
Примітка: Коли у вас встановлений MVC4 (бета-версія на даний момент), ви захочете взяти v1.0 цих DLL-файлів, ви також захочете схопити System.Web.Helpers (принаймні, мені це потрібно).
Tracker1

1
-1 Ваше повідомлення, на яке ви посилаєтесь, не пояснює, як отримати Microsoft.Web.Infrastructure до веб-сервера через механізм Publishing. Доводиться встановлювати речі безпосередньо на сервері, начебто sux.
Марк Роджерс

1
З візуальною студією 2010 року це стало набагато простіше, як пояснено тут: britishdeveloper.co.uk/2011/06/…
Tulp

або тут, якщо ви не використовуєте Web Deploy britishdeveloper.co.uk/2011/05/…
Jeroen K

Мені довелося ввести в папку бін, а потім опублікувати ще раз, тобто якщо ви не використовуєте пакет розгортання.
Роберт Кох

41

Я зіткнувся з тим же питанням, що і 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 прекрасно працювало. Вимкніть власні помилки та додайте посилання, щоб виправити помилки. Це повинно вести вас у правильному напрямку.


26

Встановлення MVC безпосередньо на веб-сервері - один із варіантів, оскільки тоді збірки будуть встановлені в GAC. Ви також можете розгорнути збірки, що може допомогти захистити ваш сервер від збірок до випуску до остаточного випуску.

Філ Хак кілька днів тому опублікував чудову статтю про те, як розгорнути MVC разом із вашим додатком, тому встановлювати його не потрібно:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx


25

Я зіткнувся з цим самим випуском, намагаючись розгорнути свій веб-додаток Razor MVC3 на спільному хостингу GoDaddy. Є кілька додаткових .dll, на які потрібно посилатися. Детальніше тут: http://paulmason.biz/?p=108

В основному вам потрібно додати посилання на наступні, крім перелічених у публікації @ Haacked, і встановити їх для локального розгортання, як описано.

  • Інфраструктура Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor

Спасибі людина, після додання посилання вручну, а потім локального їх розгортання це вирішило проблему для MVC3!
Штефавдс

Те саме тут. Хороші рекомендації щодо додавання цих додаткових DLL-файлів. Дякую!
Майк Л

Те саме тут. Не на GoDaddy, а на моєму сервері компанії, тому це повинно бути просто загальним випадком.
TJKjaer

13

У VS2010 клацніть правою кнопкою миші проект у Провіднику рішень та виберіть «Додати залежні залежності». Потім встановіть прапорці, пов'язані з MVC, у наступному діалоговому вікні.

Це створює папку '_bin_deployableAssemblies' у проекті, яка містить усі файли .dll, згадані в інших відповідях. Я вважаю, що вони створюються в папку bin під час створення пакету розгортання.


9

Просте виправлення. У VS2010 клацніть правою кнопкою миші на вашому проекті MVC, виберіть "Додати залежні розгортання ...", виберіть потрібні параметри та натисніть кнопку ОК


8

Швидке та просте рішення: Я зіткнувся з цією проблемою з Microsoft.AspNet.Mvc -Version 5.2.3 і, пройшовши всі ці теми, я знайшов найпростіше рішення.

Просто виконайте кроки:

  1. Відкрийте менеджер пакетів NuGet у студії Visual для свого проекту
  2. Шукати Microsoft.AspNet.Mvc
  3. Знайшовши змінити дію на Видалити та видалити її
  4. Після завершення встановіть його ще раз і спробуйте зараз

Це автоматично виправить усі проблеми із посиланнями. Дивіться зображення нижче:

введіть тут опис зображення


7

Був той самий випуск і додав усі збори, які вони сказали, але все-таки отримав ту саму помилку.

виявляється, вам потрібно зробити " конкретну версію " = помилковою.

Конкретна версія повинна бути помилковою.


Крім того, ви повинні переключити "Копіювати місцеве" на "Істинне", якщо воно не ввімкнено,
AStopher

6

Ми хочемо додати його, тому що ми створюємо бібліотеку класів, яка ним користується.

Для мене це тут ...

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies


3

Якщо ваш НЕ використовує хостинг-провайдера, і у вас є доступ до сервера для встановлення ... Потім встановіть інструменти оновлення MVC 3, зробіть це ... це позбавить вас годин проблем на сервері Windows 2003 / IIS6. , Я прокоментував цю сторінку тут невідповідністю Nuget.Core.dll


3

Окрім посади Хаака, аналогічну посаду має також Ганзельман. BIN Розподіл ASP.NET MVC 3 з Razor на Windows Server без встановлення MVC

Для мене рішення "Копіювати локальне = правдиве" було недостатнім, оскільки в посиланнях на мій веб-сайт посилання на проект не включали всіх недоліків. Як згадує Скотт у своєму дописі, мені також потрібно було отримати додаткові значки з наступної папки на моєму вікні розробки: C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET Веб-сторінки \ v1.0 \ Асамблеї. Повідомлення про помилку повідомило мені, який dll відсутній (System.Web.Infrastructure, System.Web.Razor тощо). Я продовжував додавати кожен пропущений dll по одному, поки він не працював.


3

Я зробив "Update-Package - перевстановіть Microsoft.AspNet.Mvc", щоб виправити це в Visual Studio 2015.


3

Важливим фактором є файл web.config. Деякі пакети можуть переплутати ваші обов'язкові переадресації, спричиняючи хаос (негідний пакет був у пакеті будинку, що я не видаляв web.config з цього пакету чи переконайтеся, що web.config у пакеті не має жодних переадресацій прив'язки, наприклад, видалення дубліката та неправильного вузла вирішує це

    <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 виправляє збірку.


2

Також перевірте версію збірки в web.config всередині папки Views і переконайтеся, що вона відповідає. Я іноді забуваю, що в цьому місці є друга web.config.



2

У мене була така ж проблема з купою файлів складання після переміщення проекту на інше рішення.

Для мене 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, яке додало всі потрібні мені збірки та посилання та знайшов їх під новими посиланнями проектів у провіднику рішень та знайшов їх шлях у вікні властивостей для довідки.

Потім я просто скопіював потрібні мені бібліотеки в інший проект і посилався на них.


1

Після того, як я спробував все, і все ще не вдалося цього, було моїм рішенням: я згадав, що в мене було і помилка востаннє оновила MVC-версію в моїй студії Visual, тому я запустила проект з іншої студії Visual (іншого комп’ютера), а потім завантажила dll-s, і це працювало. можливо, це комусь допоможе ...


0

Я використовую Jenkins з проектами .net і у мене виникли проблеми з посиланнями на MVC 4.

Нарешті я вирішив свою проблему, використовуючи функцію пошукової системи .Net на основі реєстру, використовуючи:

"HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v2.0.50727 \ AssemblyFoldersEx"

Ви можете створити підрозділ et встановити за замовчуванням наприклад "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/


0

Як вже згадували інші, додайте ці посилання до візуальних студій із Copy Localвстановленим значенням true. (Мені також довелося додати System.Web.Webpages)

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages

0

Я додав "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>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.