2011-01-20 13 views
0

私はウィンドウサービスを作成し、それはローカルホストで正常に動作します。しかし、別のマシンに(私のアカウントを使って)インストールすると、他のマシンのクライアントは "Unable to connect to the remote server"を返します。クライアントが同じマシンで実行されている場合、正常に動作します。私もコンソールアプリケーションで同じリモートオブジェクトをホストしようとしたが、それは問題なくリモートマシンから動作します。.NET Remoting:localhost以外のWindowsサービスのリモートオブジェクトに接続できません。

これは私のサービスのOnStartメソッド(のコードです):ここでは

HttpChannel channel = new HttpChannel(8080); 
    ChannelServices.RegisterChannel(channel, false); 
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), "MyService", WellKnownObjectMode.Singleton); 

は、クライアントコードです:

 ChannelServices.RegisterChannel(new HttpChannel(), false); 
     MyService myService = (MyService)Activator.GetObject(typeof(MyService), "http://xxx.xxx.xxx.xxx:8080/MyService"); 

私は誰かがインターネット上で前にこの質問をしていませんが、何の返事。誰か手がかりを得た?

答えて

1

Windowsファイアウォール(またはファイアウォール)を無効にしてみてください。あなたが私たちにしようとしているポートがブロックされている可能性があります。

重要な更新

そして、あなたはあなたが使用している ポートがブロックされていることを決定した後、 ファイアウォールを再度有効にして そのポートでの接続を可能に 例外を作成。

(彼のコメントのためのジムMischelのおかげで、これが必要だったことを私たちに思い出させる。)

+0

使用しているポートがブロックされていると判断したら、ファイアウォールを再度有効にして、そのポートで接続を許可する例外を作成します。 –

+0

ニール、そうです。それをブロックしたのはWindowsファイアウォールだ。しかし、私はファイアウォールでブロックされていないHttpChennel 8080を使用していると思いました。この制限を回避するにはどうすればよいですか? Windowsサービスを使用するためにすべてのクライアントにファイアウォールをオフにしてもらいたいとは思わない。 – newman

+0

あなたはファイアウォールだと言っていますが、ポート8080はブロックされていないと言っています。それは意味をなさないものです。ファイアウォールの設定でポート8080を確認してください。ただし、ファイアウォールをオフにして問題を解決した場合は、ファイアウォールの設定を詳しく調べる必要があります(クライアントマシンのファイアウォールを忘れないでください)。 –

0

あなたは、Visual Studioを通じて作業し、その内部のWebサーバを使用している場合、それはからの接続を受け付けません。外部IPアドレス。 localhost接続のみを受け入れます。

関連する問題