C # Remoting (MarshalByRefObject) проблема с System.Security.PermissionSet - PullRequest
4 голосов
/ 30 марта 2011

У меня есть класс, который расширяет класс MarshalByRefObject.Я создаю HTTPChannel, регистрирую ChannelService и при чтении и записи свойств int и string все работает отлично.Мой класс общения выглядит следующим образом (обратите внимание, что оба класса являются только примером, но мой реальный проект выглядит действительно похожим):

public class MyCommunicationClass : MarshalByRefObject
{
    public int IntegerValue {get; set;}

    public string StringValue {get; set;}

    public MyClass[] CustomValueArray {get; set;}
}

Моя проблема - исключение, которое возникает, когда я пытаюсь установить MyClass[] имущество.MyClass объявлен как:

[Serializable]
public class MyClass
{
    public string StringValue {get; set;}
}

Я получаю следующее исключение: System.Security.SecurityException: Ошибка запроса. Трассировка стека показывает:

The method that caused the failure
was:
System.Runtime.Remoting.Channels.ServerProcessing
ProcessMessage(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)

Aditionalпоказанная информация:

The action that failed was: Demand The
type of the first permission that
failed was:
System.Security.PermissionSet The
demand was for: <PermissionSet
class="System.Security.PermissionSet"
version="1" Unrestricted="true"/>

The only permitted permissions were:
<PermissionSet
class="System.Security.PermissionSet"
version="1"> <IPermission
class="System.Security.Permissions.SecurityPermission,
mscorlib, Version=4.0.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089"
version="1"
Flags="SerializationFormatter"/>
</PermissionSet>

Может кто-нибудь объяснить мне, что происходит и что я делаю неправильно?Спасибо!

РЕДАКТИРОВАТЬ: Это только проблема, когда я пытаюсь установить массив MyClass.Я могу назначить свойство MyClass Property в MyCommunicationClass без проблем.

...