Не работает подключение к ip камере через Onvif c#

При подключении к ip камере с services все нормально. Но GetProfiles не получает никаких профилей от камеры.

        private void button_Click(object sender, RoutedEventArgs e)
        {
            deviceUri = new UriBuilder("http://onvif/device_service");

            string[] addr = address.Text.Split(':');
            deviceUri.Host = addr[0];
            if (addr.Length == 2)
            {
                deviceUri.Port = int.Parse(addr[1]);
            }
            Console.WriteLine("IP: " + deviceUri);

            System.ServiceModel.Channels.Binding binding;
            HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
            httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Digest;
            binding = new CustomBinding(new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, Encoding.UTF8), httpTransport);

            Device.DeviceClient device = new Device.DeviceClient(binding, new EndpointAddress(deviceUri.ToString()));
            Console.WriteLine("Device: " + device.Endpoint.Address);

            Device.Service[] services = device.GetServices(false); // false - Include only needed services. true - Include all services for the device.
            Console.WriteLine("Services: ");

                Device.Service xmedia = services.FirstOrDefault(s => s.Namespace == "http://www.onvif.org/ver20/media/wsdl");
                if (xmedia != null)
                {
                    media = new Media.Media2Client(binding, new EndpointAddress(deviceUri.ToString()));
                    media.ClientCredentials.HttpDigest.ClientCredential.UserName = login.Text;
                    media.ClientCredentials.HttpDigest.ClientCredential.Password = passwordBox.Password;
                    media.ClientCredentials.HttpDigest.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;

                    Media.MediaProfile[] profiles = media.GetProfiles(null, null);
                    if (profiles != null)
                    {
                        foreach (var p in profiles)
                        {
                            listBox.Items.Add(p.Name);
                        }
                    }
          }

введите сюда описание изображения


Ответы (1 шт):

Автор решения: KEEN

Проблема заключалась в том, что на самой камере версия библиотеки Onvif была устаревшая. При подключении к другой ip камере все происходит нормально и программа работает.

→ Ссылка