我遇到了由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 Reference是VB.NET而不是C#。由于生成的Reference.vb代码实际上没有改变,只是构建类型,我在那里找不到任何东西,我显然无法调试Release版本。
我注意到Release版本从主构建中拆分了* .XmlSerializers.dll程序集。这有问题吗?
出于显而易见的原因,我宁愿不使用Debug版本。也许我应该对CodeDOM做一些阅读,我一直都是这样想的!
我应该提一下,我发现a post with reasons why a Release build will run differently但它似乎专注于C ++。
感谢您提供任何帮助。
更新:关闭序列化程序集的第三个建议解决了这个问题。我在“高级编译选项”中将“生成序列化程序集”设置从“自动”更改为“关闭”,现在我的测试通过了。我不知道那个设置。
我不确定序列化程序集的根本问题是什么。如果我有机会在第二个建议中使用您的建议调试发布程序集,我将提供更新。
答案 0 :(得分:4)
我没有给你答案,但我对如何解决这个问题有一些想法。
我希望这会有所帮助。