Подтвердить что ты не робот

Проблемы зависимостей развертывания MVC3

Я только что попробовал развернуть приложение MVC3 в нашей среде хостинга IIS7, но я получаю следующее исключение:

Не удалось загрузить тип 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' от сборки "Microsoft.Web.Infrastructure, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35. Описание: Необработанное исключение произошли во время выполнения текущий веб-запрос. Пожалуйста, просмотрите трассировки стека для получения дополнительной информации о ошибка и где она возникла в код.

Сведения об исключении: System.TypeLoadException: не удалось тип нагрузки 'Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility' от сборки" Microsoft.Web.Infrastructure, Версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35'.

Любые предложения?

Приложение не развертывается в бине, поскольку я установил веб-страницы ASP.Net и MVC3 на самом веб-сервере.

4b9b3361

Ответ 1

Это потому, что Microsoft.Web.Infrastructure не находится в вашем GAC. Вы должны добавить эту ссылку в свой проект. Щелкните правой кнопкой мыши ссылку и перейдите к свойствам, а затем скопируйте ее в локальную в значение true.

Copy Local

Выход (игнорировать Ninject и NCU):

alt text

Ответ 2

Оказалось, что после выполнения очистки ссылок он удалил Microsoft.Web.Infrastructure, но не из файла packages.config. После попытки добавить его снова, используя Package Manager Console, Visual Studio говорит, что он уже установлен, который является ложным, потому что он был удален.

Затем я удалил строку кода в файле packages.config

<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />

и снова выполнил команду

PM> Install-Package Microsoft.Web.Infrastructure

После этого теперь он отлично работает.

Ответ 3

Microsoft.Web.Infrastructure теперь является пакетом Nuget, и его можно добавить в проект, чтобы включить развертывание каталога bin -

http://nuget.org/packages/Microsoft.Web.Infrastructure

Ответ 4

Убедитесь, что файл root.config на вашем сервере (расположенный где-то здесь: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config) имеет следующую запись:

<configuration>
  <location allowOverride="true">
    <system.web>
      <fullTrustAssemblies>
        <add
          assemblyName="Microsoft.Web.Infrastructure"
          version="1.0.0.0"
          publicKey="[bunch of letters and numbers]"
        />

Если он отсутствует, значит, кто-то испортил установку .NET 4.