由于歧义错误,WSDL ReportExecution代理文件无法编译

时间:2013-05-09 21:05:11

标签: c# reporting-services wsdl

我在我的程序中使用ReportExecution代理类。当我尝试编译它时,我在生成的文件中得到58个歧义错误。这是示例错误输出:

Error   1   The namespace '<global namespace>' already contains a definition for 'LogonUserCompletedEventHandler'   
Error   2   The namespace '<global namespace>' already contains a definition for 'LogoffCompletedEventHandler'  
Error   4   Ambiguity between 'ServerInfoHeader.reportServerVersionNumberField' and 'ServerInfoHeader.reportServerVersionNumberField'   
Error   5   Ambiguity between 'ServerInfoHeader.reportServerEditionField' and 'ServerInfoHeader.reportServerEditionField'   
Error   6   Ambiguity between 'ServerInfoHeader.reportServerEditionField' and 'ServerInfoHeader.reportServerEditionField'   

我应该更改自动生成的文件来修复它吗?或者错误可能在其他地方?

提前致谢。

编辑: 我处理了大多数歧义错误,因为我不必要地添加了Web引用而不是仅使用代理类。但是,现在我仍然遇到2个错误:

Error   1   The namespace '<global namespace>' already contains a definition for 'LogonUserCompletedEventHandler'   
Error   2   The namespace '<global namespace>' already contains a definition for 'LogoffCompletedEventHandler'  

2 个答案:

答案 0 :(得分:1)

我也收到了同样的'<global namespace>'错误,因为我在visual studio项目中包含了wsdl.exe生成的代理代码,但是还将实际的源WSDL文件留在了项目的目录结构中。

ASP.NET似乎将此WSDL文件自动编译为加载时网站的另一个代理代码副本。

这不会在VS中产生编译时错误,但会导致站点失败,并在问题中描述错误1和2。

从目录结构中删除WSDL文件可以解决问题。

答案 1 :(得分:0)

好吧,如果您使用多个名称空间,似乎必须使用不同的名称空间生成wsdl代理。添加/命名空间参数解决了这个问题。