2011-08-12 3 views
0

コンソールアプリケーションでホストされている.net remotingを使用することができます。しかし、コンソールアプリケーションではなくフォームアプリケーションでリモートオブジェクトをホストする方法はありますか?サーバー管理者がリクエストと応答をライブで見ることができるようにします。Windowsのホストのリモートコンソールオブジェクト。

どのようなアイデアが役に立ちます。

よろしく SKPaul

+0

なぜそれが違っいずれかを行うことでしょうか? – Amy

+0

私は、サーバー管理者が活動を監視します。 –

+0

データベースや検索可能なものにアクティビティを記録する方が良いかもしれません。答えはフォームで行うことができますが、ログを検索したり後で参照する必要がある場合は、より永続的なものが必要です。フォームのアクティビティは、アプリケーションがクラッシュしたときに失われます。テキストボックスにテキストを追加するだけでは、メモリが不足し、クラッシュします。 – David

答えて

1

はい。これはまったく同じです。Main()でホストをインスタンス化して起動する代わりに、Form_Loadまたはボタンクリックイベントでインスタンス化して起動するか、起動することを選択します。それはまったく変わりません。

WinFormsアプリケーションを作成し、コンソールアプリケーションからコードをコピーするだけです。応答が入って​​来たよう

、ラベルまたはその代わりにあなたは彼らが来る時にメッセージを表示する場合Console.WriteLineを()のテキストボックスに書き込む。

唯一の注意点は、可能性の高いサービスのホストが可能になるということですフォームUIとは別のスレッドで実行されるため、TextBox、Label、または他のコントロールのInvokeRequiredプロパティについて知る必要があります。そうしないと、他のスレッドからコントロールに書き込もうとするとエラーが発生します。

起動に必要なプロパティ:Windowsにスレッドセーフな呼び出しを行う方法http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspx

フォームコントロール:http://msdn.microsoft.com/en-us/library/ms171728.aspx

+0

私はコンソールアプリケーションで動作する場合、スレッドで作業する必要はありませんか? –

+0

同じ方法ではありません。 Console.Writelineはスレッドセーフです。 http://stackoverflow.com/questions/1079980/calling-console-writeline-from-multiple-threads – David

+0

Davidに感謝します。今、私は "How to:スレッドセーフな呼び出しをWindowsフォームコントロールにする"を読んでいます。そのmsdnの記事は私が学ぶのを助けることを願っています。 –