首页 > 解决方案 > 在 azure 函数中反序列化来自服务总线的代理消息时出现异常

问题描述

我正在尝试创建一个简单的 azure 函数来监听我的服务总线主题:

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

无法加载文件或程序集“PhotoManager.Domain,Version=1.0.0.0,Culture=neutral,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 类并且没有任何外部依赖项(只有那些默认添加的依赖项,例如SystemSystem.Data)。即使在这种情况下,我也有同样的例外。

一些笔记

NetDataContractSerializer因此,在 Azure Functions 中使用时似乎存在问题。

标签: c#.netazureazure-functions

解决方案


推荐阅读