【发布时间】:2011-10-24 20:34:20
【问题描述】:
我正在实例化一个对象,并使用 SOAP 数据填充它。
这曾经运作良好。
但是,在为程序集指定一个强名称后,我收到以下错误:
重要的一点是:
应用程序已停止工作
问题签名:System.Runtime.Serialization.Formatters.Soap
调试器向我显示System.Runtime.Serialization.SerializationException,其中包含以下详细信息。请注意序列化解析器如何抱怨“没有与 Xml 键关联的程序集”
完整的错误描述是:
解析错误,没有与 Xml 键 a1:http://schemas.microsoft.com/clr/nsassem/MyProject/MyProject%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3DnullMainForm 关联的程序集
这是堆栈跟踪
在 System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessGetType(String value, String xmlKey, String& assemblyString)
在 System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessType(ParseRecord pr, ParseRecord objectPr)
在 System.Runtime.Serialization.Formatters.Soap.SoapHandler.ProcessAttributes(ParseRecord pr, ParseRecord objectPr)
在 System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()
在 System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXml()
在 System.Runtime.Serialization.Formatters.Soap.SoapParser.Run()
在 System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler handler, ISerParser serParser)
在 System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream serializationStream, HeaderHandler handler)
在 System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(Stream 序列化流)
在 C:\MyProject\Program.cs:line 35 中的 MyProject.Program.Main()
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly 程序集,String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
我取消选中“签署程序集”,重新构建解决方案,然后,就像魔术一样,一切恢复正常——所以,我知道错误的 SOAP 文件不是根本原因。事实上,如果我不得不冒险猜测,我会说强程序集名称“混淆”了 SOAP 反序列化器。
我该如何解决这个问题?
【问题讨论】:
-
截图中的错误是什么?从“解析错误...”开始
-
@sll 给出调用反序列化方法的入口点的完整路径。我已编辑帖子以包含此信息。
标签: c# serialization soap crash assemblies