无法连接 Onvif 摄像头

Unable to connect Onvif camera

我已经在 ONVIF 上工作了一个星期。我想实现 ONVIF 提供的所有服务。我已设法发现 ONVIF 设备并获取有关设备的信息(如设备名称、配置文件、Uri)。我在我的代码中使用 Onvif(discovery, services, session, utils) 和 utils(async, common, diagnostic,utils.fsharp) 作为一个项目。

我有两个摄像头,一个是 ReadLeaf,另一个是 IPNC。我能够成功地发现它们。当我试图获取有关设备的信息时,我能够正确获取 ReadLeaf 相机的信息,但如果是 IPNC,它会给我一个错误:-

'System.ServiceModel.Security.MessageSecurityException' 发生在 mscorlib.dll 但未在用户代码中处理。

Additional information: The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Digest realm="onvif", qop="auth,auth-int", nonce="587343b5ca703a95f874", opaque="08138641"'.

我用谷歌搜索了这个错误,发现可能有两个问题:

1) 客户端和服务器上的安全设置不匹配。

2) 这通常是因为消息正在向 Web 日志服务器发送时间戳而响应没有时间戳,请尝试在安全性中关闭时间戳。

然后我和我的学长聊天,他告诉我相机端的onvif实现有问题。相机制造商没有在他们的相机中正确实现 onvif。

现在,我有点困惑这里的确切问题是什么以及问题的解决方案是什么。

相机详情:-

ReadLeaf 模型 - RLC-DF2011

IPNC 模型 - ONVIF_IPNC

我们将不胜感激任何形式的帮助。

谢谢。

相机实现了可选的 HTTP 摘要身份验证。当profile S camera同时实现UsernameToken和HTTP digest认证时,如果不提供认证,则需要向客户端建议后者。

您看到的错误可能是因为您调用的 ONVIF 功能需要身份验证而不提供凭据,因此相机 returns HTTP 401。

只需通过添加用于 HTTP 摘要身份验证的凭据来重复调用即可。如果您将使用未实现摘要的相机,请准备好接收 soap 错误而不是 HTTP 401。