我有一个WCF服务,当在我们的开发和测试环境中部署时,它可以完美运行,但在生产环境中却无法使用。

尝试浏览到服务时,将引发以下异常(内部异常类型为InvalidDataContractException):

[ServiceActivationException:由于编译期间发生异常,因此无法激活服务'/IL.Party.WS/Party.svc'。异常消息为:类型'IL.Party.MS.Person'无法序列化。请考虑使用DataContractAttribute属性标记它,并使用DataMemberAttribute属性标记要序列化的所有成员。

我不知道这是怎么回事。所有这三种环境都是Windows Server 2003,IIS6和.NET 3.5。在服务失败的服务器上,我已经删除了临时文件。 ASP.NET文件强制重新编译。在所有三个环境中部署相同的代码。如果“ IL.Party.MS.Person”不可序列化,则我希望在所有三种环境中均会收到此错误。 Person类型具有字符串,int,DateTime和十进制类型的字段-因此没有异常,并且可以序列化。

有谁知道这可能是什么原因吗?

最佳答案

Marc_s实际上在评论中回答了这个问题。

但是看起来原因是数据协定序列化程序中的更改。

http://www.hanselman.com/blog/HiddenGemsNotTheSameOld35SP1Post.aspx

关于c# - WCF ServiceActivationExceptionException混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1543285/

10-09 18:26