сегодня я использую камеру VDX и хочу управлять ею по протоколу Onvif. В моей программе мне нужно сделать запрос GetProfiles.
С другими камерами (Bosh, Lumens, Axis, ec...) мой метод работает нормально, но с VDX у меня много проблем. В частности, если я использую следующий фрагмент (используя порт 80), сервер выдает исключение (ошибка 414 URI слишком большой):
var httpTransport = new HttpTransportBindingElement
{
AuthenticationScheme = AuthenticationSchemes.Digest
};
var binding = new CustomBinding(new TextMessageEncodingBindingElement
(MessageVersion.None, Encoding.Default), httpTransport);
var builder = new UriBuilder("http", "10.0.34.32", 80, "/onvif/media_service");
var mediaAddress = builder.Uri;
var mediaClient = new MediaClient(binding, new EndpointAddress(mediaAddress));
mediaClient.ClientCredentials.HttpDigest.ClientCredential.UserName = username;
mediaClient.ClientCredentials.HttpDigest.ClientCredential.Password = password;
var getProfilesResponse = await mediaClient.GetProfilesAsync();
var profiles = getProfilesResponse.Profiles;
}
Если я изменю номер порта на 81, сервер ответит без ошибок, но профили будут нулевыми (на самом деле есть 2 профиля).
Зайдя на веб-страницу камеры, я обнаружил следующие номера портов:
Используя Onvif Device Manager, он работает правильно ... кто-нибудь может сказать мне, что я не так? Любые идеи?