我有一个 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 类型具有字符串、整数、日期时间和小数类型的字段 - 因此没有任何异常并且绝对可序列化。
有人知道是什么原因造成的吗?
最佳答案
Marc_s 实际上在评论中回答了这个问题。
但看起来原因是数据契约序列化程序发生了变化。
http://www.hanselman.com/blog/HiddenGemsNotTheSameOld35SP1Post.aspx
关于c# - WCF ServiceActivationException 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1543285/