2009-05-19 7 views
2

J'ai une application qui communique avec un service wndows via .net remoting..net remoting dans Vista

Sous XP Tout cela est bien, mais quand je lance le même code sur Vista je reçois l'exception

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) 

J'ai essayé tourner le pare-feu, exécutant le service dans le même contexte utilisateur que l'utilisateur qui est connecté en vain.

Y at-il quelque chose à propos de Vista qui ne permet pas la communication entre les services et les applications utilisateur via .net remoting?

Est-ce que quelqu'un d'autre a déjà vu ça?

Répondre

0

Je n'ai jamais trouvé de solution pour cela. Mais au lieu d'utiliser tcp pour le remoting, j'ai utilisé le protocole ipc fourni avec .net 2.0 (c'était un projet converti à partir de 1.1).

Spécification du groupe autorisé a obtenu autour de cette question:

<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>