ASP MVC Меньше файла дает: Исключение было сгенерировано целью вызова

У меня есть простой сайт asp.net MVC 4, который использует меньше файлов. Когда я запускаю его на своем локальном компьютере, он работает нормально, но когда я публикую его на сервере, я получаю следующую ошибку:

During the output text content of processed asset an unknown error has occurred.
See more details:
Exception has been thrown by the target of an invocation.

трассировки стека:

[HttpException (0x80004005): During the output text content of processed asset an unknown error has occurred.
See more details:
Exception has been thrown by the target of an invocation.]
   BundleTransformer.Core.HttpHandlers.AssetHandlerBase.ProcessRequest(HttpContextBase context) +1895
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +913
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

Для рендеринга меньшего количества файлов я использую BundleTransformer.Less и в файле web.config, который я добавил в bundletransformer:

<less useNativeMinification="false" ieCompat="true" strictMath="false" strictUnits="false" dumpLineNumbers="None">
      <jsEngine name="V8JsEngine" />
    </less>

2 ответа

Попробуйте установить распространяемые пакеты Visual C++ для Visual Studio 2013 на сервере.

Примечание. Для более старых версий JavaScriptEngineSwitcher.V8 (до версии 1.3.0) требовалась распространяемая версия Visual C++ для Visual Studio 2012.

Некоторые версии пакетов JavaScriptEngineSwitcher / BundleTransformer могут не работать на веб-серверах IIS 8.5 (я не знаю точно, что является причиной ошибки, это могут быть некоторые зависимости, например, ClearScript dll)

У меня есть подобные проблемы сегодня после попытки обновления до последних версий на NuGet и после боев, решаю вернуться к использованию следующих версий (проверено и хорошо работает на IIS 7 / IIS 8.5):

  <package id="BundleTransformer.Core" version="1.9.25" targetFramework="net45" />
  <package id="BundleTransformer.Less" version="1.9.25" targetFramework="net45" />
  <package id="JavaScriptEngineSwitcher.Core" version="1.2.4" targetFramework="net45" />
  <package id="JavaScriptEngineSwitcher.V8" version="1.2.0" targetFramework="net45" />

Вы можете использовать консоль NuGet для установки конкретной версии указанных пакетов (см. Как установить более старую версию пакета через NuGet?)

Другие вопросы по тегам