PermissionSet-请求失败错误



我有几个项目使用ChannelSink、ServerSink和ClientSink进行通信。

我已将这些项目从.NET 2.0升级到.NET 4.0。升级前一切正常。

现在,当我尝试通信时,对于特定的消息,我的OnReceiveMessage没有被调用,并引发以下异常:

System.Security.SecurityException:请求失败

服务器堆栈跟踪:在System.Array.InternalCreate(Void*elementType,Int32 rank,Int32*pLengths,Int32*

p下限)位于System.Array.CreateInstance(类型elementType,Int32长度)位于System.Runtime.Serialization.Formatters.Soap.ObjectReader.ParseArray(ParseRecordpr)在System.Runtime.Serialization.Formatters.Soap.ObjectReader.ParseObject(ParseRecordpr)在System.Runtime.Serialization.Formatters.Soap.ObjectReader.Parse(ParseRecordpr)System.Runtime.Serialization.Formatters.Soap.SoapHandler.StartChildren()位于System.Runtime.Serialization.Formatters.Soap.SoapParser.ParseXML()System.Runtime.Serialization.Formatters.Soap.ObjectReader.Run()System.Runtime.Serialization.Formatters.Soap.ObjectReader.Deserialize(HeaderHandler,ISerParser

serParser)System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Deserialize(流序列化流,

HeaderHandler处理程序)在System.Runtime.Remoting.Channels.CoreChannels.DescializeSoapRequestMessage(流

inputStream,Header[]h,布尔值bStrictBinding)在System.Runtime.Remoting.Chanels.SoapServerFormatterSink.ProcessMessage

(IServerChannelSinkStack sinkStack,IMessage requestMsg,ITransportHeaders requestHeaders,流

requestStream,IMessage&responseMsg、ITransportHeaders&responseHeaders,流&responseStream)

在[0]处重新引发异常:在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage

retMSg)在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)。.(我的一些文件)。失败的操作为:Demand失败的第一个权限的类型为:System.Security.PermissionSet请求用于:

唯一允许的权限是:

导致失败的方法是:System.Runtime.Remoting.Channels.ServerProcessingProcessMessage(System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage ByRef,System.Runtime.Remoting.Channels.ITransportHeaders ByRef,System.IO.Stream ByRef)

问题是,如果我创建一个伪方法并将其添加到下沉堆栈中,它会调用它。即使我使用相同的代理来拒绝消息。

另一件事是,其他消息运行良好。iv'e创建的所有类型中只有一种类型的消息不起作用。

我根本没有在我的应用程序上请求PermissionSet,有什么帮助吗?

Pah-应该猜到在堆栈交换上发布5分钟后我会找到它。我只需要替换:

<formatter ref="soap" />

通过

<formatter ref="soap" typeFilterLevel="Full" />

typeFilterLevel的MSDN文档解释了发生了什么,尽管我不完全确定为什么数组不被视为"基本"类型

相关内容

  • 没有找到相关文章

最新更新