Ответ 1
Решение. Скопируйте ссылку на локальный
- Щелкните правой кнопкой мыши по ссылке System.Web.Helpers и выберите Properties.
- Изменить Копировать Локальное значение в true.
- Решение для сборки
У меня есть веб-приложение MVC4, которое отлично работает в Visual Studio 2012, используя локальный сервер IIS Express. Когда я публикую приложение на веб-сервере IIS 8, работающем в Windows 2012, начальная страница входа отображается правильно. Однако, используя удаленную отладку, я вижу, что при проверке учетных данных используется следующая строка:
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
Я получаю ошибку, показанную на рисунке ниже:
(источник: usf.edu)
Решение. Скопируйте ссылку на локальный
Звучит так, как будто MVC не установлен на сервере.
System.Web.Helpers.dll
входит в официальный пакет Nuget Microsoft.AspNet.WebPages.
Установите это, и ссылки должны быть исправлены, и файл должен быть скопирован в вашу папку bin.
Я смог решить эту проблему, загрузив Microsoft Web Platform Installer, выполнив поиск MVC и установив версию ASP.NET MVC3 (Visual Studio 2010), выпущенную 4/11/2011 ". Закройте все экземпляры Visual Studio до установки.
Убедитесь, что он ищет правильную версию файла. Мои были неверны, файл web.config указывал на более поздние версии, чем у меня в проекте.
В свойствах я отметил, что версия была 2.0.0.0, поэтому я сделал это этой версией в файле web.config
Просто добавив к существующим ответам, так как даже я столкнулся с той же ошибкой и не смог найти ссылку в сборках. Я просто расскажу, что помогло мне:
Откройте диспетчер пакетов из Инструменты- > Диспетчер пакетов NuGet- > Консоль диспетчера пакетов и введите:
PM> Install-Package microsoft-web-helpers
После этого System.Web.Helpers появится в разделе Ссылки- > Ассембли. Оттуда свойство "Скопировать местное" можно изменить на "Истина".
Я запускаю VS 2015Preview и могу решить проблему, установив последнюю версию MVC через NuGet.
На всякий случай кто-то еще сталкивается с этим.
Я добавил "Microsoft ASP.NET Razor", используя "Управление пакетами NuGet".
С помощью добавления ссылок по какой-то причине у меня только были System.Web.Helpers 1.0.0 и 2.0.0... но не 3.0.0.
У меня была такая же проблема с работой службы WCF в IIS 8. Взгляните на это решение Развертывание ASP.NET, это сработало для меня.
может быть что-то не так с вашим файлом Web.config.
Откройте файл и найдите тег <runtime></runtime>
.
изменить версию MVC.
Например, MVC 3
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
После добавления правильной версии MVC добавляется ссылка на Microsoft Web Helper, но не на System.Web.Helper. Добавьте это вручную к своим ссылкам.