【发布时间】:2010-10-02 21:48:44
【问题描述】:
我遇到了由 Visual Studio 2005 生成的 SOAP Web 引用的问题(.NET 框架是 v2.0.50727.42) - 它在 Debug 构建配置下工作正常(并且已经使用了几个月)但现在我想上线并使用 Release 配置进行编译,但它已停止工作。
每当我调用 Web Reference 上的方法时,都会在运行时引发异常。最常见的例外是:
System.InvalidOperationException: There was an error generating the XML document. ---> System.ArgumentException: Item has already been added. Key in dictionary: 'MayriseWebServices.RefuseService.PremiseSummaryStructure' Key being added: 'MayriseWebServices.RefuseService.PremiseSummaryStructure'
项目和生成的 Web 参考的语言是 VB.NET 而不是 C#。由于生成的 Reference.vb 代码实际上并没有改变,只是构建类型,我在那里找不到任何东西,而且我显然无法调试 Release 构建。
我注意到 Release 版本从主版本中分离出 *.XmlSerializers.dll 程序集。是否存在已知问题?
出于显而易见的原因,我宁愿不使用 Debug 版本。也许我应该读一些关于 CodeDOM 的书,我一直想这样做!
我应该提到我找到了a post with reasons why a Release build will run differently,但它似乎专注于 C++。
感谢您提供的任何帮助。
更新:第三个关闭序列化程序集的建议已经解决了这个问题。我在高级编译选项中将“生成序列化程序集”设置从“自动”更改为“关闭”,我的测试现在通过了。我不知道那个设置。
我不确定序列化程序集的根本问题是什么。如果我有机会使用您在第二个建议中的建议调试 Release 程序集,我将提供更新。
【问题讨论】:
标签: .net vb.net web-services serialization visual-studio-2005