我安装了一个WCF服务,它在启动时不断抛出意外的命名空间异常。奇怪的是,如果我通过IIS或视觉工作室通过WCFSvcHost托管它,它可以正常工作。在设置安装程序ServiceHost时,我无法在设计器中找到任何名称空间声明。有什么想法吗?
使用其他主机时,我没有遇到排序和反序列化数据的问题。
[DataContract(Name = "ClientSite", Namespace = "http://IAmRedacted.com/IAmRedacted.WCF.DataContract")]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class ClientSite : IAppServerRequest
例外:
无法启动服务。 System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.Runtime.Serialization.SerializationException:第1行位置错误153.期望来自命名空间“http://IAmRedacted.com/IAmRedacted.WCF.DataContract”的元素“ClientSite”..遇到名为“ClientSite”的“元素”,命名空间“http://schemas.datacontract.org/2004/07/IAmRedacted.Framework.WCF”。在System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader,Boolean verifyObjectName,DataContractResolver dataContractResolver) 在System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader,Boolean verifyObjectName,DataContractResolver dataContractResolver) 在System.Runtime.Serialization.DataContractSerializer.ReadObject(XmlDictionaryReader reader,Boolean verifyObjectName) 在IAmRedacted.WCF.ClientSite.LoadClientSiteData()
'IAmRedacted.Framework.WCF'是我使用的旧命名空间声明,但它已被简化,我无法在任何地方找到它的引用。
答案 0 :(得分:1)
我不知道因为我使用Windows服务作为主机,XML文件被保存到/ windows而不是本地目录。无效的命名空间来自/ windows / syswow64中仍然存在的旧XML文件。