从dll远程处理SecurityException

时间:2014-03-09 15:43:23

标签: c# dll nunit remoting

我需要测试旧的传统远程服务。 代码随附了客户端,这意味着我有一个对象来处理所有的通道实现。

从可执行文件连接到此客户端时 - 一切都很好并且运行良好,但是当尝试使用dll执行相同的操作时(nunit是测试框架)每当我尝试查询服务时都会抛出SecurityException。

为什么使用dll代码而不是可执行文件有区别?

这是错误消息:

  

键入System.Runtime.Remoting.ObjRef以及从中派生的类型   (例如System.Runtime.Remoting.ObjRef)是不允许的   在此安全级别反序列化。

不用说我无法访问服务器端代码,但它是.Net 4.5(虽然远程处理)和测试代码也是.Net 4.5,我必须提到我在同一台机器上运行代码

这是代码生成客户端通道

 public class RemoteClient
    {
        public static RemoteClient GenerateClient()
        {
            SetupHttpChannelAndBuildUrl();

            cm_remote obj = null;
            try
            {
                obj = (cm_remote) Activator.GetObject(typeof (cm_remote_base), url);
                obj.DoSomething();
                return obj;
            }
            catch (Exception e)

            {
            ...
            }
        }

        private static SetupHttpChannelAndBuildUrl()
        {
        ...
        }

        public void DoSomethig()
        {
        ...
        }
    }

这是触发功能的dll和exe代码:

public RemoteClient GetRemoteClient()
    {
        return RemoteClient.GenerateClient();
    }

从exe返回RemoteClient的实例,从dll返回null

0 个答案:

没有答案