Сравнение имени сборки привело к несоответствию: номер редакции - PullRequest
1 голос
/ 25 сентября 2019

Я работаю над приложением ASP.NET MVC4, которое отлично работает на моем локальном компьютере, но не работает на сервере приложений, и выдает следующую ошибку:

Не удалось загрузить файл или сборку 'System.Web.Mvc, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 'или одна из ее зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

Веб-конфигурация:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.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="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="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>

Когда я меняю версию System.Web.Mvc, чтобы открыть версию, т.е. 4.0.40804.0 Я получил почти похожую ошибку:

<dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.40804.0" newVersion="4.0.40804.0" />
      </dependentAssembly>

LOG: эта привязка начинается в контексте загрузки по умолчанию.LOG: использование файла конфигурации приложения: D: \ mywebapp \ web.config LOG: использование файла конфигурации хоста: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config LOG: использование файла конфигурации компьютера из C: \Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config.LOG: Политика, не применяемая в настоящее время для ссылки (частная, пользовательская, частичная или привязка сборки на основе местоположения).LOG: Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Tevive Files ASP.NET / root / f56977f7 / c98ce4c8 / System.Web.Mvc.DLL.LOG: Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Tevive Files ASP.NET / root / f56977f7 / c98ce4c8 / System.Web.Mvc / System.Web.Mvc.DLL.LOG: Попытка загрузки нового файла URL: /// D: /RHDHV_Websites/Graafgebiedinformatie/bin/System.Web.Mvc.DLL.LOG: использование файла конфигурации приложения: D: \ mywebapp \ web.config LOG: использование файла конфигурации хоста: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config LOG: использование файла конфигурации компьютера из C: \Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config.LOG: перенаправление найдено в файле конфигурации приложения: 4.0.0.1 перенаправлено на 4.0.40804.0.LOG: ссылка после политики: System.Web.Mvc, версия = 4.0.40804.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 LOG: попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319 / Временные файлы ASP.NET / root / f56977f7 / c98ce4c8 / System.Web.Mvc.DLL.LOG: Попытка загрузки нового файла URL: /// C: /Windows/Microsoft.NET/Framework64/v4.0.30319/Tevive Files ASP.NET / root / f56977f7 / c98ce4c8 / System.Web.Mvc / System.Web.Mvc.DLL.LOG: Попытка загрузки нового файла URL: /// D: /RHDHV_Websites/Graafgebiedinformatie/bin/System.Web.Mvc.DLL.WRN: сравнение имени сборки привело к несоответствию: номер редакции ERR: не удалось завершить настройку сборки (hr = 0x80131040).Зондирование прекращено.

Любая помощь или совет очень ценится.Спасибо

1 Ответ

0 голосов
/ 25 сентября 2019

Я бы попробовал использовать какой-нибудь процесс исключения:

Восстановить перенаправления привязки

  1. Убедитесь, что у вас одинаковая веб-конфигурация наобе среды (локальная и удаленная)
  2. Очистить + Построить свой проект.Перейдите в среду bin, получите все библиотеки и вставьте их в папку развертывания.Убедитесь, что System.Web.Mvc.dll находится среди них.
  3. Убедитесь, что на mvc dll есть ссылки в разделе Ссылки вашего проекта MVC.

Longshot.Измените перенаправление привязки на

      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
      </dependentAssembly>
      <dependentAssembly>

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

Второй журнал имеет смысл.Он просто не находит никаких dll для загрузки, так что это не ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...