2009-05-19 4 views
2

У меня есть приложение, которое общается с помощью wndows-сервиса через удаленную сеть .net..net remoting in 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 для удаленного доступа, я использовал протокол ipc, который поставлялся с .net 2.0 (это был преобразованный проект из 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>