远程处理配置失败,异常为“System.Runtime.Remoting.RemotingException: 利用集成 Windows 身份验证在 IIS 中承载此服务,以保护服务器
在 System.Runtime.Remoting.Channels.Http.HttpServerChannel.set_IsSecured(Boolean value)
在 System.Runtime.Remoting.Channels.Http.HttpChannel.set_IsSecured(Boolean value)
在 System.Runtime.Remoting.Channels.ChannelServices.RegisterChannelInternal(IChannel chnl, Boolean ensureSecurity)
在 System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(IChannel chnl, Boolean ensureSecurity)
在 System.Runtime.Remoting.RemotingConfigHandler.ConfigureChannels(RemotingXmlConfigFileData configData, Boolean ensureSecurity)
在 System.Runtime.Remoting.RemotingConfigHandler.ConfigureRemoting(RemotingXmlConfigFileData configData, Boolean ensureSecurity)”。
大家帮忙看一下什么原因呢?报错代码:RemotingConfiguration.Configure("Receiver.exe.config", true);
在 System.Runtime.Remoting.Channels.Http.HttpServerChannel.set_IsSecured(Boolean value)
在 System.Runtime.Remoting.Channels.Http.HttpChannel.set_IsSecured(Boolean value)
在 System.Runtime.Remoting.Channels.ChannelServices.RegisterChannelInternal(IChannel chnl, Boolean ensureSecurity)
在 System.Runtime.Remoting.Channels.ChannelServices.RegisterChannel(IChannel chnl, Boolean ensureSecurity)
在 System.Runtime.Remoting.RemotingConfigHandler.ConfigureChannels(RemotingXmlConfigFileData configData, Boolean ensureSecurity)
在 System.Runtime.Remoting.RemotingConfigHandler.ConfigureRemoting(RemotingXmlConfigFileData configData, Boolean ensureSecurity)”。
大家帮忙看一下什么原因呢?报错代码:RemotingConfiguration.Configure("Receiver.exe.config", true);
下表对两个主要的传输通道接收进行了比较
Remoting没有自己的安全模型,客户端(代理)和服务器(远程对象)之间的身份验证和授权是通过通道和主机进程执行的。可以组合使用以下的主机和通道:Ø 自定义的可执行文件和TCP通道。这种组合不提供任何内置的安全功能。Ø ASP.NET和HTTP通道。这种组合通过基本的ASP.NET和IIS安全功能提供身份验证和授权。在上面的第一个例子中,由于我们并没有提供相应的身份验证凭证,所以会抛出那样的异常,显然是IIS进行身份验证时出现错误。而在第二个例子中,由于对TCP通道没有设置安全功能,所以将ensureSecurity设置为True和False都是一样的,即都可以正常的工作。这样就引出了另外一个问题:使用哪种通道更好一些呢?这要看具体的情况,其实二者各有优缺点。首先HTTP通道使用SOAP格式传输数据,这样就类似于Web服务可以轻松穿透防火墙从而可以在Internet上访问远程对象,且具有较高的安全性。需要注意的是此时不能把服务端的方法暴露出来,如果要这样做可以使用Web Service替代。然而,这种方式也存在很大的弊端就是效率很低,甚至于比Web Service还要慢,在内部网中使用效果不尽人意。再来看TCP通道,由于它采用原始二进制格式传输数据,因此效率很高,速度很快,在Intranet中使用效果很好。但是安全性略有不足,且穿透防火墙的能力很差。因此,在局域网应用中使用TCP通道是最好的选择。当然,如果您使用 TCP 通道,可使用 IPSec 保护客户端和服务器之间的通信通道;使用 SSL 来保护 HTTP 通道。需要补充说明的是,如果将远程对象驻留在控制台应用程序中,则在控制台应用程序进程内包含的应用程序域中激活远程对象。你不能使用 HTTP 通道,而必须使用 TCP 通道。然而大多数情况也不这样用,如果你需要对远程资源进行受信任的调用,请将组件驻留在 Windows 服务中,而不是驻留在控制台应用程序中。最后还是回到对RemotingConfiguration.Configure (String, Boolean)方法的讨论上,如果你使用Http通道并且要求对用户身份进行验证,请将第二个参数设为True,否则设为False。如果你使用Tcp通道,那么第二个参数的设置通常情况下为False,如果使用True,请在具体的应用环境中进行测试。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/blue_sky_blue_heart/archive/2006/08/28/1130914.aspx