无法连接Onvif相机

时间:2017-01-09 11:25:38

标签: c# camera onvif

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

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

发生了

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

  

其他信息:HTTP请求未经授权与客户端   认证方案'匿名'。收到身份验证标头   从服务器是'Digest realm =“onvif”,qop =“auth,auth-int”,   nonce =“587343b5ca703a95f874”,opaque =“08138641”'。

我搜索了这个错误,发现可能存在两个问题:

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

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

然后我和我的老人聊天,他告诉我摄像头上的onvif实现有问题。相机制造商没有将onvif正确地实现到他们的相机中。

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

相机详细信息: -

ReadLeaf模型 - RLC-DF2011

IPNC模型 - ONVIF_IPNC

任何形式的帮助都会非常明显。

感谢。

1 个答案:

答案 0 :(得分:1)

摄像头实现可选的HTTP摘要认证。当配置文件S相机同时实现UsernameToken和HTTP摘要认证时,如果没有提供认证,则必须向客户端提出后者。

您看到的错误可能是因为您正在调用需要身份验证的ONVIF函数而不提供凭据,因此摄像头会返回HTTP 401。

通过添加HTTP摘要身份验证的信誉来重复呼叫。如果您使用不实现摘要的相机,请准备好接收肥皂错误而不是HTTP 401。