私はウィンドウサービスを作成し、それはローカルホストで正常に動作します。しかし、別のマシンに(私のアカウントを使って)インストールすると、他のマシンのクライアントは "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");
私は誰かがインターネット上で前にこの質問をしていませんが、何の返事。誰か手がかりを得た?
使用しているポートがブロックされていると判断したら、ファイアウォールを再度有効にして、そのポートで接続を許可する例外を作成します。 –
ニール、そうです。それをブロックしたのはWindowsファイアウォールだ。しかし、私はファイアウォールでブロックされていないHttpChennel 8080を使用していると思いました。この制限を回避するにはどうすればよいですか? Windowsサービスを使用するためにすべてのクライアントにファイアウォールをオフにしてもらいたいとは思わない。 – newman
あなたはファイアウォールだと言っていますが、ポート8080はブロックされていないと言っています。それは意味をなさないものです。ファイアウォールの設定でポート8080を確認してください。ただし、ファイアウォールをオフにして問題を解決した場合は、ファイアウォールの設定を詳しく調べる必要があります(クライアントマシンのファイアウォールを忘れないでください)。 –