【问题标题】:.net remoting in VistaVista中的.net远程处理
【发布时间】:2010-10-27 10:04:08
【问题描述】:

我有一个通过 .net 远程处理与 wndows 服务通信的应用程序。

在 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 远程处理在服务和用户应用程序之间进行通信的问题?

还有其他人看过吗?

【问题讨论】:

    标签: windows-vista remoting


    【解决方案1】:

    我从来没有为此想出一个解决方案。但是我没有使用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多