Рекомендации по устранению проблем с загрузкой сборок / исключение файла не найдено в Azure службе приложений - PullRequest
0 голосов
/ 01 апреля 2020

Я бьюсь головой об стену, пытаясь устранить неполадки. NET проблемы с загрузкой сборки в Azure службе приложений (Azure webjobs). Моя проблема в том, что у меня значительно меньше видимости (я думаю?) На Azure, чем на местном уровне, потому что, например, я не могу использовать средство просмотра журнала Fusion для получения информации о привязке сборки.

Мои данные c проблема связана с веб-сервисами Amazon AWS Polly Nuget - https://www.nuget.org/packages/AWSSDK.Polly/3.3.103.52.

. не может быть найден. Примечание. Это происходит только в Azure; он нормально загружается в моей локальной среде разработки.

  • DLL находится в каталоге bin проекта в среде разработки и находится в каталоге исполняемых файлов webjob
  • Я подтвердил использование Инструмент sn.exe (входит в состав Visual Studio) через sn -Tp AWSSDK.Polly.dll означает, что ключ токена publi c, показанный в журнале ошибок, является тем же ключом ключа publi c, который показан в выходных данных команды sn.exe.

Я изучал возможные проблемы с перенаправлением привязки, и (а) в моем файле .config (не так ли?) Не было операторов перенаправления привязки, и (б) я не думал, что перенаправления привязки необходимы, если не было конфликта зависимостей, который В настоящее время у меня нет доказательств.

Каковы рекомендации по устранению этой проблемы?

Не удалось загрузить файл или сборку 'AWSSDK.Polly, версия = 3.3.0.0, культура = нейтральная, PublicKeyToken = 885c28607f98e604. Система не может найти указанный файл. Имя файла: 'AWSSDK.Polly, Version = 3.3.0.0, культура = нейтральной, PublicKeyToken = 885c28607f98e604' в System.Reflection.CustomAttribute._CreateCaObject (RuntimeModule pModule, тип RuntimeType, IRuntimeMethodInfo pCtor, Byte ** ppBlob, Byte * pEndBlob, Int32 * pcNamedArgs) в System.Reflection. , Boolean mustBeInheritable, ListBuilder1 Производные атрибуты) в System.Reflection.CustomAttribute.GetCustomAttributes (RuntimeModule decorModule, Int32 DecoMetadataToken, Int32 pcaCount, RuntimeType, атрибутFilterType Runtime, метод RunTimeTimeTimeTypeTexject.GameTimeTypeTameTexject.GateTimeThereTribute. .GetCustomAttributes (MemberIn Элемент fo, тип Type, логическое наследование) в System.Reflection.CustomAttributeExtensions.GetCustomAttributes [T] (элемент MemberInfo, логическое наследование) в System.Diagnostics.StackTrace.TryResolveStateMachineMethod (MethodBase & method, Type & declaringTtaTestToTestToTentingType) (TraceFormat traceFormat) в System.Exception.get_StackTrace () в System.IO.FileNotFoundException.ToString () в MyApp.Processors.VProcessor.ProcessQueueMessageAsyn c (элемент queueItem)

1 Ответ

0 голосов
/ 02 апреля 2020

Вот пара моментов, которые нужно проверить с вашего локального компьютера

  1. Удалить каталоги bin, obj & packages на вашем локальном компьютере.
  2. Тогда попробуйте использовать nuget restore. Это должно установить пакет AWS nuget.
  3. В файле проекта (.csproj) найдите dll и найдите, откуда на него ссылаются, если на него ссылаются из каталога пакетов, это нормально. если на него ссылаются из каталога bin по ошибке, что должно привести к сбою ссылки.
  4. Создайте проект, посмотрите, не остались ли ссылки нетронутыми, и проблема с ссылками на dll решена
  5. Если Вы используете версию. net, которая отличается от среды размещения, эта проблема может возникнуть. Некоторые пакеты nuget работают с указанной c целевой. net версией, и, если в хостинговой среде такой версии нет, может быть эта ошибка
  6. Попробуйте получить развернутый пакет и проверить его. чтобы убедиться, что ссылки в порядке
  7. Попробуйте разместить пакет (6) в своей IIS, чтобы увидеть, если вы получаете аналогичную ошибку

Пожалуйста, поделитесь своими выводами после попытки выше варианты

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