2009-05-19 84 views
2

我有一个应用程序通过.net远程处理与wndows服务进行通信。.net远程处理在Vista中

在XP下,这是所有罚款,但是当我在Vista上运行相同的代码我得到的异常

System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:8969 

Server stack trace: 
    at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) 
    at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket(AddressFamily family) 
    at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket() 
    at System.Runtime.Remoting.Channels.RemoteConnection.GetSocket() 
    at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew) 
    at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream) 
    at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream) 
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg) 

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) 

我试着打开防火墙关闭,运行中的用户相同的用户上下文服务这是登录到无济于事。

有没有关于Vista,不允许通过.net远程处理服务和用户应用程序之间的通信?

有没有其他人看到过这个?

回答

0

我从来没有想出这个决议。但是,我没有使用tcp进行远程处理,而是使用了.net 2.0附带的ipc协议(这是从1.1版转换而来的项目)。

指定授权组得到了解决此问题:

<system.runtime.remoting> 
     <application name="MyService"> 
     <service> 
      <wellknown type="MyAssembly.MyServiceProxy, MyService" objectUri="FrontdeskSyncService.rem" mode="Singleton" /> 
     </service> 
     <channels> 
      <channel ref="ipc" portName="server" authorizedGroup="Everyone"> 
      <serverProviders> 
       <formatter ref="binary" typeFilterLevel="Full" /> 
      </serverProviders> 
      </channel> 
     </channels> 
     </application> 
    </system.runtime.remoting>