2011-09-20 36 views
2

我正在构建web服务的测试存根,实现使用svcutil从生产webservice检索的接口。当在存根上调用方法时,我得到异常;无法在WCF中转换为相同类型

Object of type 
'Sbsys.Services.HostService.DokumentBoks.DKALWSAfsendService.MaterialeType[]' 
cannot be converted to type 
'Sbsys.Services.HostService.DokumentBoks.DKALWSAfsendService.MaterialeType[]'. 

其中“Sbsys.Services.HostService.DokumentBoks”是消费客户机的名称空间,和“DKALWSAfsendService”是包含所生成的代理类的服务的命名空间。

关于发生什么事情的任何想法?

奖金信息:当使用生产服务一切都会按计划

+0

解决方案中有多个'Sbsys.Services.HostService.DokumentBoks.DKALWSAfsendService.MaterialeType'定义的机会?可能有多个具有相似类型和名称空间的Web服务引用?也许一个在被引用的dll中,一个在本地? –

+0

@MarcGravell:可悲的不是。该项目相当孤立,只有一个服务参考。奖励信息:使用生产服务时,一切都按预期运作。 – hhravn

+0

当你说“生产服务” - 如何配置?是相同的*服务*,但在配置文件中有不同的值(或者替代方法,在通道运行时更改url) - 或者您是否有单独的dev/prod服务参考? –

回答

3

解决:我怀疑它可能是一个版本控制问题,并将我的服务引用移到一个孤立的项目中,其中不包含任何其他内容。从消费者客户端和Web服务存根引用了这一点,希望这可以解决任何构建多次或任何问题的问题。普雷斯托。问题没有了。

2

任何机会,在督促的WSDL /合同是你的呼唤对一个有什么不同?如果代理已经针对产品生成并在具有不同合约的服务的另一实例上使用,那么您可能会遇到那种奇怪的消息。

0

有时会出现此错误,因为项目属性中的Generate Serializable Assembly选项(尤其是如果您使用的是每生成的序列化程序集使用sgen)。尝试在项目属性中将此选项设置为关闭并查看它是否有效。关闭此选项后,您需要使用sgen生成装配。这个Q&A有一些很好的讨论和后台线程。

+0

我在其他地方阅读了这篇文章,并没有任何运气尝试。不管怎么说,还是要谢谢你。 – hhravn

相关问题