【发布时间】:2015-06-28 03:59:25
【问题描述】:
要从符合 ONVIF 的设备检索事件,您需要使用 ONVIF 事件 wsdl。
ONVIF FAQ & Support page上提到了以下内容:
Visual Studio 2008、2010 和 2012 使用名为 svcutil.exe 的工具为 WCF 框架生成 Web 服务客户端。该工具通过将端口类型映射到接口以及将复杂类型映射到类而存在问题。当 wsdl 文件包含同名的端口类型和复杂类型时,这会导致编译时出现名称冲突,例如“命名空间 'foo.Event' 已经包含 'CreatePullPoint' 的定义”。
作为一种解决方法,他们编辑了 events.wsdl 以使用修改后的 ws 基本通知文件,该文件可通过this 链接获得。
但是,当我将 wsdl 文件添加到我的解决方案时,我收到一条错误消息,提示无法找到 wsdl 文件中以下行中提到的文件
<wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2" location="bw-2-vs-mod.wsdl"/> <!-- Use modified OASIS file to avoid svcutil name clash -->
当我浏览到http://docs.oasis-open.org/wsn/ 并手动查找文件时,我可以看到它也没有在此处列出。文件所在的位置是否存在其他位置?
【问题讨论】:
-
我不知道文件可能在哪里,但是您可以修改原始文件并自己修复吗?如果只是一个名称冲突,那么进行相同的修复可能并不难。显然也要更改 events.wsdl 中指向的位置。
-
我试图修改原始的 .wsdl 文件,但后来我没有成功获得一个工作的 wsdl。
-
您的文件“bw-2-vs-mod.wsdl”是相对于链接给出的路径,因此绝对路径是onvif.org/onvif/ver10/event/wsdl/bw-2-vs-mod.wsdl。
标签: c# wsdl svcutil.exe onvif