0

C# コンソール アプリケーションの作成を終えたばかりで、それに Web サーバーを埋め込むことを考えています (おそらくこれはhttp://webserver.codeplex.comです)。ただし、高度な Web コーディングについてはあまり詳しくないので、必要なことを実行できるかどうかはわかりません。

基本的に、アプリケーションが提供しているサイトにアクセスするだけで、ユーザーがアプリケーションのコンソール出力をリアルタイムで表示できるようにしたいと考えています。私の理解が正しければ、このようなことを行うには、単純な C# Web サーバーでは処理できない AJAX が必要になります。

これは正しいですか、それとも行方不明になっているこれを行う簡単な方法はありますか?

4

3 に答える 3

2

コンソール出力を再ルーティングする方法

TextWriter独自に作成Consoleし、 経由で使用する必要がありますConsole.SetOut。このライターは、接続されている Web クライアントと、元の に通知する必要がありますConsole.Out

COMET のようなサーバーをホストする方法

HttpListenerこれを行うには、いくつかの基本的な非同期プログラミングを使用できます。を( に設定して)でラップし、HttpListenerContext.Response.OutputStreamクライアントに設定すると、部分的な結果が返されます。これは、IFRAME でも実行できることを意味します。StreamWriterAutoFlushtrueHttpListenerContext.Response.SendChunkedtrue

UAC が有効になっている場合は、自分で URL に権限を追加する必要があります。

netsh http add urlacl url=http://+:9090/ user=domain\username

コード?

私はそれに抵抗できませんでした。(テストが不十分でほとんど不完全な) sampleを書きました。

于 2011-08-24T12:52:50.177 に答える
0

このUtilDev Cassiniを組み込み Web サーバーとして使用します。これは組み込み Visual Studio 開発サーバーのコードに基づいており、IIS で実行されるほとんどすべてのものを実行できます。AJAX はサーバー テクノロジではなくブラウザ テクノロジです。サーバーは http 要求を他のものと同じように認識します。最後のポイントは、Web サーバーをコンソール アプリケーションに埋め込むのは少し奇妙に思えるということです。Windows サービスでこれを行うのがより一般的です。コンソール アプリを Windows サービスに変換することを検討しましたか?

于 2011-08-24T11:49:02.763 に答える
0

それは正しくありません。

AJAX は、JavaScript に依存するクライアント側の手法です。Web サーバーが HTTP 要求に応答できる限り、AJAX コンテンツを提供できます(それが何を意味するかは関係ありません:-)。

于 2011-08-24T11:44:27.580 に答える