onvif / specs

ONVIF Network Interface Specifications
Other
338 stars 90 forks source link

Analytics Service WSDL - the created service reference throws exception on GetAnalyticsModuleOptions() request #440

Closed PeterLottes closed 2 months ago

PeterLottes commented 3 months ago

the analytics service reference was built with VisualStudio 2022 in C# tried .net60, .net70 and net80, any time with same issue:;

GetAnalyticsModuleOptions Request throws an exception:

There was an error in serializing body of message GetAnalyticsModuleOptionsRequest: 'CodeGenError(IsNotAssignableFrom): Cannot convert source type [OnvifAnalyticsService.Vector[]] to target type [OnvifAnalyticsService.Vector].'. Please see InnerException for more details.

Callstack: at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.SerializeBody(XmlDictionaryWriter writer, MessageVersion version, String action, MessageDescription messageDescription, Object returnValue, Object[] parameters, Boolean isRequest) at System.ServiceModel.Dispatcher.OperationFormatter.SerializeBodyContents(XmlDictionaryWriter writer, MessageVersion version, Object[] parameters, Object returnValue, Boolean isRequest) at System.ServiceModel.Dispatcher.OperationFormatter.OperationFormatterMessage.OperationFormatterBodyWriter.OnWriteBodyContents(XmlDictionaryWriter writer) at System.ServiceModel.Channels.BodyWriter.WriteBodyContents(XmlDictionaryWriter writer) at System.ServiceModel.Channels.BodyWriterMessage.OnWriteBodyContents(XmlDictionaryWriter writer) at System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer) at System.ServiceModel.Channels.Message.WriteMessage(XmlDictionaryWriter writer) at System.ServiceModel.Channels.BufferedMessageWriter.WriteMessage(Message message, BufferManager bufferManager, Int32 initialOffset, Int32 maxSizeQuota) at System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.WriteMessageAsync(Message message, Int32 maxMessageSize, BufferManager bufferManager, Int32 messageOffset) at System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.WriteMessage(Message message, Int32 maxMessageSize, BufferManager bufferManager, Int32 messageOffset) at System.ServiceModel.Channels.MessageEncoder.WriteMessage(Message message, Int32 maxMessageSize, BufferManager bufferManager) at System.ServiceModel.Channels.BufferedMessageContent.EnsureMessageEncoded() at System.ServiceModel.Channels.BufferedMessageContent.TryComputeLength(Int64& length) at System.Net.Http.HttpContent.GetComputedOrBufferLength() at System.Net.Http.Headers.HttpContentHeaders.get_ContentLength() at System.Net.Http.SocketsHttpHandler.ValidateAndNormalizeRequest(HttpRequestMessage request) at System.Net.Http.SocketsHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.<g__Core|83_0>d.MoveNext() at System.ServiceModel.Channels.HttpChannelFactory1.HttpClientRequestChannel.HttpClientChannelAsyncRequest.<SendRequestAsync>d__13.MoveNext() at System.ServiceModel.Channels.RequestChannel.<RequestAsync>d__33.MoveNext() at System.ServiceModel.Channels.RequestChannel.<RequestAsyncInternal>d__32.MoveNext() at System.Runtime.TaskHelpers.WaitForCompletionNoSpin[TResult](Task1 task) at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(MethodCall methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(MethodInfo targetMethod, Object[] args) at generatedProxy_4.GetAnalyticsModuleOptions(GetAnalyticsModuleOptionsRequest ) at OnvifAnalyticsService.AnalyticsEnginePortClient.OnvifAnalyticsService.AnalyticsEnginePort.GetAnalyticsModuleOptions(GetAnalyticsModuleOptionsRequest request) in D:\SystemtestGIT\CSharp\OnvifFunctions\OnvifFunctionsTest\Connected Services\OnvifAnalyticsService\Reference.cs:line 39657 at OnvifAnalyticsService.AnalyticsEnginePortClient.GetAnalyticsModuleOptions(XmlQualifiedName Type, String ConfigurationToken) in D:\SystemtestGIT\CSharp\OnvifFunctions\OnvifFunctionsTest\Connected Services\OnvifAnalyticsService\Reference.cs:line 39665

HansBusch commented 3 months ago

Filed PR #443.

sujithhanwha commented 2 months ago

Closing this issue, since PR #443 fixes this.