2012-01-16 59 views
1

我正在使用客户提供的.Net API(几个.Net DLL)的项目。我已经构建了基于此API的应用程序。应用程序按预期在我的机器上运行。但是当我尝试在客户端机器上部署它时,它会失败并出现相当一般的异常。我试着用google搜索这个例外,但没有任何结论可以找到。如何处理.Net XML序列化异常?

要对此API给出一个粗略的概念,它将包装一个Web服务使用者,因此需要将方法参数封送到XML中(没有可用的源代码)。以下是异常的堆栈跟踪: -

System.InvalidOperationException:生成 XML文档时发生错误。 ---> System.ArgumentException:字符串长度不能为零 。在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterStreamInformation.Write5_StreamInformation(对象 O)---内部异常堆栈跟踪的末尾在 System.Xml.Serialization.XmlSerializer.Serialize(的XmlWriter的XmlWriter, 对象O,XmlSerializerNamespaces命名空间,字符串的encodingStyle, 字符串ID)处 Microsoft.SqlServer.DataWarehouse.Loader.StringSerializer`1.Serialize(TSerializable 实例 System.Xml.Serialization.XmlSerializer.Serialize(的TextWriter 的TextWriter,对象o,XmlSerializerNamespaces命名空间) )at Microsoft.SqlServer.DataWarehouse.Loader.LoaderClient.BeginExecuteBinary(AsyncCallback endLoadCallback,的AsyncCallback startSendingDataCallback,对象状态) >在 Microsoft.SqlServer.DataWarehouse.Loader.AABinLoaderClient.CofingDoLoad(字符串[] configVals)

帧以斜体表示我们的,而在粗框应用代表客户的API 如果任何人在过去遇到此异常并知道任何解决方法,请让我知道。

+2

这是使用自定义XML序列化还是为您生成的序列化? – jermny 2012-01-16 12:18:36

回答

1

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

没有看到任何代码,很难提供任何详细的问题分析。

+0

我已经更新了整个堆栈跟踪,你可以看看它并发表评论。 – amod 2012-01-16 12:29:35

+0

如果API正在为您序列化数据,则很难尝试解决方法。你是否提供要序列化的数据? – mrstebo 2012-01-16 12:36:58

+0

yes api正在为我序列化数据。 – amod 2012-01-16 12:41:09