如何处理.Net XML序列化异常?

时间:2012-01-16 12:09:42

标签: .net web-services

我正在开发一个利用客户提供的.Net API(几个.Net DLL)的项目。我已经基于这个API构建了一个应用程序。应用程序在我的机器上按预期工作。但是,当我尝试在客户端的计算机上部署它时,它失败了,并且有一个相当普遍的例外。我尝试使用谷歌搜索这个例外,但没有找到任何结论。

为了大致了解这个API,它包装了一个Web服务使用者,因此需要将方法参数编组为XML(没有可用的源代码)。以下是异常的堆栈跟踪: -

  

System.InvalidOperationException:生成错误时出错   XML文档。 ---> System.ArgumentException:String不能为零   长度。在   Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterStreamInformation.Write5_StreamInformation(对象   o)---内部异常堆栈跟踪结束--- at   System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,   Object o,XmlSerializerNamespaces名称空间,String encodingStyle,   字符串id)at   System.Xml.Serialization.XmlSerializer.Serialize(的TextWriter   textWriter,Object o,XmlSerializerNamespaces namespaces)at   Microsoft.SqlServer.DataWarehouse.Loader.StringSerializer`1.Serialize(TSerializable   例子) at   Microsoft.SqlServer.DataWarehouse.Loader.LoaderClient.BeginExecuteBinary(AsyncCallback的   endLoadCallback,AsyncCallback startSendingDataCallback,Object state)   >在   Microsoft.SqlServer.DataWarehouse.Loader.AABinLoaderClient.CofingDoLoad(字符串[]   configVals)

Italic中的

框表示我们的应用程序,而粗体框表示客户端的API 如果有人在过去遇到此例外并知道任何解决方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

我在尝试解析XML时遇到过这种错误。我看到“String不能有零长度”错误的最常见的地方是它试图在字符串中找到一个特定的位置。你知道这个API是否使用XML命名空间吗?

如果没有看到任何代码,很难对问题进行详细分析。