Исключение при десериализации брокерского сообщения из служебной шины в функции Azure - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь создать простую функцию Azure, которая будет прослушивать тему моей служебной шины:

var test = new PhotoStatsChange();//OK
var entity = message.GetBody<PhotoStatsChange>(new NetDataContractSerializer());//Exception here

Не удалось загрузить файл или сборку 'PhotoManager.Domain, Version = 1.0.0.0,Культура = нейтральная, PublicKeyToken = null 'или одна из ее зависимостей.Системе не удается найти указанный файл.

PhotoManager.Domain - это сборка, в которой определено PhotoStatsChange.Но я полностью сбит с толку сообщением об ошибке (нет внутреннего исключения): как нельзя найти сборку, если она используется в строке выше?

На самом деле PhotoManager.Domain.dll присутствует в папке /bin/Debug/net461/bin.

Текст сообщения:

<?xml version="1.0" encoding="UTF-8"?>
<PhotoStatsChange 
    xmlns="http://schemas.datacontract.org/2004/07/PhotoManager.Domain.Caching" 
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" 
    z:Id="1" 
    z:Type="PhotoManager.Domain.Caching.PhotoStatsChange" 
    z:Assembly="PhotoManager.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
   <CacheRebuilt>false</CacheRebuilt>
   <InstanceNum z:Id="2">IN_0</InstanceNum>
</PhotoStatsChange>

Обновление

Я создал простой пример со сборкой, который содержит один класс POCO и не имеет никаких внешних зависимостей (только те, которыепо умолчанию добавляется как System, System.Data и т. д.).И даже в этом случае у меня такое же исключение.

Некоторые заметки

  • Настройка Copy Local не помогает
  • Проблема отсутствует при использовании по умолчаниюСериализатор (Microsoft.ServiceBus.Messaging.DataContractBinarySerializer)

Так что кажется, что есть проблема при использовании NetDataContractSerializer внутри функций Azure.

...