1

我在我的程序中使用 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'  
4

2 回答 2

1

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

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

这不会在 VS 中给出编译时错误,但会导致站点因问题中描述的错误 1 ​​和 2 而失败。

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

于 2013-06-03T14:09:30.477 回答
0

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

于 2013-05-10T13:13:39.953 回答