【问题标题】:Formatter exception deserializing Agatha request反序列化 Agatha 请求的格式化程序异常
【发布时间】:2011-09-02 04:12:21
【问题描述】:

我已经断断续续地挠头好几次了 现在几天,我希望有人可以提供一些见解。首先, 异常...

一个活动返回了一个异常:格式化程序抛出了一个异常 尝试反序列化消息时出现异常:出现错误 在尝试反序列化参数http://tempuri.org/:requests 时。 InnerException 消息是“第 1 行位置 837 中的错误。元素 'http://schemas.datacontract.org/2004/07/Agatha.Common.Request' 包含映射到名称“http://”的类型的数据 schemas.datacontract.org/2004/07/ MyCompany.MyProduct.Services.Contracts.Customers:ReadAllCustomersRequest'。 反序列化器不知道映射到此名称的任何类型。 考虑使用 DataContractResolver 或添加对应的类型 'ReadAllCustomersRequest' 到已知类型列表 - 例如,通过 使用 KnownTypeAttribute 属性或将其添加到 传递给 DataContractSerializer 的已知类型。请参见 InnerException 了解更多详情。

好的,这很公平。似乎序列化程序不知道我的类型 (ReadAllCustomersRequest) 继承自 Agatha 的请求。奇怪,因为 Agatha 应该在配置期间处理这个问题。我的服务层 配置看起来像这样...

// NOTE: A Unity container (re: the container variable) is built upelsewhere.

var agathaServiceConfiguration = new ServiceLayerConfiguration(new Container(container));
agathaServiceConfiguration.AddRequestHandlerAssembly(typeof(ReadAllCustomersHandler).Assembly);
agathaServiceConfiguration.AddRequestAndResponseAssembly(typeof(ReadAllCustomersRequest).Assembly);
agathaServiceConfiguration.Initialize();

请注意,我的处理程序类型与此代码在同一个程序集中 (我的公司。我的产品。服务)。我的请求和响应类型, 但是,在不同的程序集中 (MyCompany.MyProduct.Services.Contracts)。没什么大不了。毕竟,我 基本上复制了 Brion 的“Hello World”(并引用了 阿加莎来源)。

问题是这一切都很好。没有任何错误... 在本地运行时(Win7/VS2010/Cassini)。如果我推送服务器端 shebang 到一个 IIS 7.5 站点,但是,我开始得到异常 更多。相同的编译程序集。相同的配置文件。结果不同。 哦,IIS...我多么爱你。

我非常怀疑这是一个 Agatha 问题,因为正如我所说,它运行 在当地就好了。我只是想知道是否有人知道为什么 当我将它放到远程服务器时它失败了。我可能失踪了 非常非常明显的东西。

哦,值得一提的是,IIS 7.5 站点托管的是非 Agatha (嘘!)服务很好。我的 mex 端点被枚举得很好, 也。哦,Elmah 没有在服务器端记录任何内容。一切正常 直到我从客户端发送请求。

所以,关于我的部署,有些东西很糟糕,但它是 让我难住了。有什么想法吗?

【问题讨论】:

    标签: wcf iis datacontractserializer


    【解决方案1】:

    我的部署失败了,我的 Global.asax 没有正确部署。 叹息...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 2014-10-22
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多