我遇到了一个由Visual Studio 2005生成的SOAP Web引用的问题(.NET Framework是v2.0.50727.42)-它在调试生成配置下工作正常(已经运行了几个月),但现在我想上线并使用发布配置进行编译,它已停止工作。
每当我调用Web引用上的方法时,都会在运行时引发异常。最常见的例外是:
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代码实际上并没有改变,只是构建类型,所以我在那里找不到任何内容,显然我无法调试发布版本。
我注意到发布版本从主版本中分离了一个*.xmlserializers.dll程序集。这有已知的问题吗?
出于明显的原因,我宁愿不使用调试构建。也许我应该读些关于codedom的书,我一直想读!
我应该说我找到了
a post with reasons why a Release build will run differently
但是它似乎集中在C++上。
谢谢你的帮助。
更新:
关闭序列化程序集的第三个建议解决了该问题。我在高级编译选项中将“生成序列化程序集”设置从“自动”更改为“关闭”,现在测试通过。我不知道那个场景。
我不确定序列化程序集的底层问题是什么。如果我有机会使用您在第二个建议中的建议调试发布程序集,我将提供一个更新。