Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 奇怪的间歇性WCF错误投射iPermission_C#_Wcf - Fatal编程技术网

C# 奇怪的间歇性WCF错误投射iPermission

C# 奇怪的间歇性WCF错误投射iPermission,c#,wcf,C#,Wcf,我目前正试图修复一个WCF服务错误,我一辈子都无法找出任何关于原因的线索 问题本质上是,它得到了一个InvalidCastException,试图将内容转换为IPrincipal对象(我在错误中看到的XmlDictionaryString和ClassDataContractCriticalHelper)。服务器端,它甚至不会影响我们的代码,问题是我们只是间歇性地(每周最多2-3次,API每秒使用多次)出现问题,如果我们在完整的消息日志记录中离开,就会在几分钟内填满生产服务器硬盘 堆栈跟踪是: S

我目前正试图修复一个WCF服务错误,我一辈子都无法找出任何关于原因的线索

问题本质上是,它得到了一个InvalidCastException,试图将内容转换为IPrincipal对象(我在错误中看到的XmlDictionaryString和ClassDataContractCriticalHelper)。服务器端,它甚至不会影响我们的代码,问题是我们只是间歇性地(每周最多2-3次,API每秒使用多次)出现问题,如果我们在完整的消息日志记录中离开,就会在几分钟内填满生产服务器硬盘

堆栈跟踪是:

System.InvalidCastException: Unable to cast object of type 'System.Xml.XmlDictionaryString' to type 'System.Security.IPermission'.    
Server stack trace:      at WriteOUROBJECTNAMEToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract )     
at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context)     
at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)    
 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle)     
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph)     
at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph)     
at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph)     
at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph)    
 at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.SerializeParameterPart(XmlDictionaryWriter writer, PartInfo part, Object graph)    
 at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.SerializeParameter(XmlDictionaryWriter writer, PartInfo part, Object graph)     
at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.SerializeParameters(XmlDictionaryWriter writer, PartInfo[] parts, Object[] parameters)     
at System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.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.WriteBodyContents(XmlDictionaryWriter writer)     
at System.ServiceModel.Security.SecurityAppliedMessage.WriteBodyToSignThenEncryptWithFragments(Stream stream, Boolean includeComments, String[] inclusivePrefixes, EncryptedData encryptedData, SymmetricAlgorithm algorithm, XmlDictionaryWriter writer)     
at System.ServiceModel.Security.WSSecurityOneDotZeroSendSecurityHeader.ApplyBodySecurity(XmlDictionaryWriter writer, IPrefixGenerator prefixGenerator)     
at System.ServiceModel.Security.SecurityAppliedMessage.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.WriteMessage(Message message, Int32 maxMessageSize, BufferManager bufferManager, Int32 messageOffset)     
at System.ServiceModel.Channels.HttpOutput.SerializeBufferedMessage(Message message)     at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout)     
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout)     
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)     
at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)     
at System.ServiceModel.Channels.TransactionRequestChannelGeneric`1.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(IMethodCallMessage methodCall, ProxyOperationRuntime operation)     
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)   
 Exception rethrown at [0]:      
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)     
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)     
at OUR.CLIENT.ANONYMIZED.AddThing(ThingInfo data)
at OUR.CLIENT.ANONYMIZED.DoStuff()
最初,我们启用了消息安全性,根据IPrincipal提示,我们切换到TransportWithMessageCredential和HTTPS加密,只是为了看看它是否有效,但它没有给我们带来任何好处。配置为:



有没有人有什么理论,甚至有什么线索可以找呢?

这是一个非常适合解决的问题。您可以将崩溃规则配置为在发生此异常时仅记录此异常的崩溃转储。DebugDiag附带了一个崩溃分析脚本,它可能会告诉您足够的信息,以便您能够解决问题。否则,您可能需要手动调试以找到根本原因。

您是否能够在.NET framework中自动生成的方法中显示代码ifrom
writeOutRobjectNameToXML
method-这不是我们的代码。我没有任何代码。有趣的是,我可能会看一下。。。大多数类似的诊断工具都需要应用程序完全崩溃,对吗?WCF“优雅地”处理这一故障,因为它只是将故障返回给客户端,而不是关闭整个应用程序池-我们甚至没有在服务器的事件日志或任何东西中收到错误,WCF只是将其视为一个错误的请求并将其丢弃。不完全是这样。您将配置规则以捕获第一次机会异常。当调试器连接到进程时,您可以看到(响应)这些第一次出现的异常,即使它们是在调用堆栈的更上层处理的。