Периодическое исключение в расширении экспорта WSDL

У меня есть служба SOAP, которая работает чуть больше месяца. За последние две недели у нас были ситуации, когда служба случайным образом начинала генерировать исключения. Каждый раз кажется, что они связаны с расширением экспорта, и ошибка всегда связана со следующими строками:

При вызове расширения экспорта WSDL возникло исключение: System.ServiceModel.Description.DataContractSerializerOperationBehavior

With «System.ArgumentException: названный узел из другого контекста документа». каждый раз кажется первопричиной.

Что меня беспокоит, так это то, что эта услуга не изменилась за полтора месяца, поэтому я не понимаю, как внезапно мы ' d внезапно получить ошибки аргумента. Это больше указывает на основную проблему (утечка памяти или что-то подобное)?

У меня очень ограниченный доступ к машине, на которой это работает, но я могу попытаться получить любую вспомогательную информацию по мере необходимости. Вот полное исключение, с которым возвращается wsdl:

    An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
    System.InvalidOperationException: An exception was thrown in a call to a WSDL export extension: System.ServiceModel.Description.DataContractSerializerOperationBehavior
     Endpoint: [endpoint name here... hidden for security] ----> System.ArgumentException: The named node is from a different document context.
       at System.Xml.XmlAttributeCollection.Append(XmlAttribute node)
       at System.ServiceModel.Description.SoapHelper.CreateSoapFaultBinding(String name, WsdlEndpointConversionContext endpointContext, FaultBinding wsdlFaultBinding, Boolean isEncoded)
       at System.ServiceModel.Description.MessageContractExporter.MessageBindingExporter.ExportMessageBinding(OperationDescription operation, Type messageContractExporterType)
       at System.ServiceModel.Description.WsdlExporter.CallExtension(WsdlEndpointConversionContext endpointContext, IWsdlExportExtension extension)
       --- End of inner ExceptionDetail stack trace ---
       at System.ServiceModel.Description.ServiceMetadataBehavior.MetadataExtensionInitializer.GenerateMetadata()
       at System.ServiceModel.Description.ServiceMetadataExtension.EnsureInitialized()
       at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.InitializationData.InitializeFrom(ServiceMetadataExtension extension)
       at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.GetInitData()
       at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.TryHandleMetadataRequest(Message httpGetRequest, String[] queries, Message& replyMessage)
       at System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.ProcessHttpRequest(Message httpGetRequest)
       at SyncInvokeGet(Object , Object[] , Object[] )
       at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
       at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

РЕДАКТИРОВАТЬ: Я хотел уточнить, что служба не всегда вызывает это исключение. Иногда wsdl возвращается нормально, а иногда выдает это исключение (я бы сказал, что в настоящее время это 50/50 шанс успешного возврата). Я не могу понять почему. Моя первоначальная мысль касается проблемы с окружающей средой, но если это так, я не знаю, куда направить команду хостинга, чтобы искать.

РЕДАКТИРОВАТЬ 2: С момента первоначального запроса я ' Мы обнаружили, что клиент разместил службы на нескольких серверах и использует балансировщик нагрузки, который, как я полагаю, учитывает получаемые нами случайные ответы. Я посоветовал им, как действовать, по крайней мере, для локализации проблемы, и что будет дальше.

10
задан Cœur 15 December 2017 в 12:40
поделиться