我一直在摸不着头,一两次 几天,我希望有人可以提供一些见解。首先, 例外...
活动返回了一个异常:格式化程序抛出了一个异常 尝试反序列化消息时出现异常:出现错误 在尝试反序列化参数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'到已知类型列表 - 例如,by 使用KnownTypeAttribute属性或将其添加到列表中 传递给DataContractSerializer的已知类型。'。请参阅 InnerException以获取更多详细信息。
好的,这很公平。好像序列化器不知道我的类型 (ReadAllCustomersRequest)继承自Agatha的请求。很奇怪,因为 阿加莎应该在配置期间处理这个问题。我的服务层 config看起来像这样......
// 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)。我的请求和响应类型, 然而,是在一个不同的集会 (MyCompany.MyProduct.Services.Contracts)。没什么大不了。毕竟,我 基本上复制了Brion的“Hello World”(并参考了中的例子) 阿加莎的来源)。
问题是这一切都很好。没有任何错误...... 在本地运行时(Win7 / VS2010 / Cassini)。如果我推动服务器端 shebang到IIS 7.5站点,然而,我开始得到例外 以上。相同的编译程序集相同的配置文件。结果不同。 哦,IIS ......我多么爱你。
我非常怀疑这是一个阿加莎问题,因为正如我所说,它运行起来 在当地很好。我只是想知道是否有人知道为什么 当我把它放到远程服务器上时它会失败。我可能不见了 一些非常非常明显的事情。
哦,为了它的价值,IIS 7.5网站正在托管非Agatha (嘘!)服务很好。我的mex端点列举得很好, 太。哦,Elmah没有记录任何服务器端。一切都很正常 直到我发送客户请求。
所以,关于我的部署的某些东西已经开始了,但它是 让我难过。有什么想法吗?
答案 0 :(得分:0)
我的部署很糟糕,我的Global.asax没有正确部署。 唉...