我正在开发一个利用客户提供的.Net API(几个.Net DLL)的项目。我已经基于这个API构建了一个应用程序。应用程序在我的机器上按预期工作。但是,当我尝试在客户端的计算机上部署它时,它失败了,并且有一个相当普遍的例外。我尝试使用谷歌搜索这个例外,但没有找到任何结论。
为了大致了解这个API,它包装了一个Web服务使用者,因此需要将方法参数编组为XML(没有可用的源代码)。以下是异常的堆栈跟踪: -
Italic中的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)
框表示我们的应用程序,而粗体框表示客户端的API 如果有人在过去遇到此例外并知道任何解决方法,请告诉我。
答案 0 :(得分:1)
我在尝试解析XML时遇到过这种错误。我看到“String不能有零长度”错误的最常见的地方是它试图在字符串中找到一个特定的位置。你知道这个API是否使用XML命名空间吗?
如果没有看到任何代码,很难对问题进行详细分析。