1

この質問の言い方がよくわかりませんでした。

私がやりたいことは、C# で単純なサーバー タイプのアプリケーションを作成することです。このアプリケーションは、着信ソケット接続を単にリッスンし、指定した方法でそれらを処理します。チャット アプリケーションなど、非常に単純なものである可能性があります。

例を見ました: http://msdn.microsoft.com/en-us/library/fx6588te.aspx非同期ソケットについて。

この例のコードは理解できますが、コードがどのように実行されるかはわかりません。具体的には、この例のアプリケーションのエントリ ポイントは何でしょうか? サーバーはそれを開始することをどのように認識しますか?

IIS での私の唯一の経験は、C# コードビハインドを使用した Web フォームです。URLがその場所を指しているときにWebフォームのコードが実行され、ポストバックなどで再び実行されることを理解しています.

私にとって霧がかかったのは、Web フォームを使用するのではなく、単一のエントリ ポイント (Java アプリケーションと同様) を持つ単に C# クラス ファイルのコレクションを使用したい場合です。

わかりやすくするために編集します。

私がやりたいことの目標は、クライアント アプリケーションからの要求を継続的に受け入れ、指定した方法でそれらを処理し、クライアントに情報を返す Web ホストに配置できるアプリケーションを作成することです。Webフォームしか知らないので、サーバーにアプリケーションを開始するように指示する方法がわかりません。
また、最初にブラウザーを Web フォームに誘導し、たとえばボタンを押してアプリケーションを開始する必要がある場合でも問題ありません。実際、アプリケーションを自由に開始および停止できれば理想的です。また、間違った用語を使用した可能性があります。IISサーバーは、asp.netアプリケーションを実行できるサーバーと呼ばれるものだと思いました。私はこれについて非常に間違っている可能性があります。

ありがとう。

4

3 に答える 3

2

IIS を使用して Windows アプリケーションを開始することはできず、指定されたポートを常にリッスンする Windows サービス アプリケーションが必要であり、その Windows サービス アプリケーションは、システムの起動時または任意のイベントで開始するようにスケジュールする必要があります。また、アプリを機能させたい限り、Windows サービス アプリケーションはメモリ内にとどまる必要があります。

PS:あなたの質問には真剣に編集が必要ですが、私もSOに慣れていないので、立派な上級ユーザーに彼らが得意なことをさせます.

編集: IIS を使用して Windows サービスをシミュレートしたい場合は、ここに最も近い賭けがあります。リンクに従って、知っておく必要があることを確認してください。

ASP.NET アプリを使用して Windows サービスをシミュレートする

アプリケーションの存続を強制する

これらの2つのリンクは、アプリケーションとbammを存続させるのに役立ちます。実行したいタスクを実行するために、任意の数のクラス(引用したJavaスタイル)を作成できます

于 2013-03-11T17:55:13.617 に答える
2

IIS をまったく使用したくないように思えます。IIS はリッスンを処理し、要求を管理する「サービス」です。着信接続を手動でリッスンする場合は、次のコンポーネントが必要です。

  1. 実行中の Windows サービスが..

  2. それに組み込まれている http リスナー。

C# HttpListener クラスを見て、サーバーのバックグラウンドで実行できるウィンドウ サービスを構築するプロセスを見てください。

これはそれほど難しいことではありませんが、必要なものかどうかはわかりません。Webフォームを使用したくない場合は、リクエストをカスタムハンドラーに直接解決するWebアプリケーションを使用できます。これは、実際に探しているものであり、独自のリスナーを過剰なものにします。

編集: カスタム ハンドラーに関する追加情報

ここでは、カスタム ハンドラーとは何か、およびその使用方法について説明します: http://support.microsoft.com/kb/308001

また、.net の MVC3 に関する初心者向けの記事も参照します。MVC は、Web フォームにある綿毛 (viewstate など) をまったく持たないフレームワークであり、URL (要求) をコントローラー (クラス) にルーティングして、必要なものをほとんど何でも返すことができます。MVC を使用することには多くの利点があり、Java/pure http のバックグラウンドを持っている場合は、Web フォームよりもはるかに理にかなっています。

「.net MVC3 の使用を開始する」を検索するか、www.asp.net で初心者向けのリソースを検索することで、それを開始できます。

于 2013-03-11T17:56:07.493 に答える
0

低レベルのTCP通信、サービスの作成と構成、コード変更の処理、独自のシリアル化/リクエスト解析の作成を学ぶことが目標でない限り、IISとHTTPに固執するよりも簡単なアプローチかもしれません.

WebForms を使用する必要はありません - WebService (ASP.Net または WCF) またはMVC Web APIを使用すると、独自のカスタム シリアル化および要求解析インフラストラクチャを作成する必要なく、必要なメソッドを実装できます。必要に応じてロング ポーリングを実行することもできます (つまり、SignalR )。

JSON結果をサーバー側として報告する基本的なMVCアプリケーションから始めます。チャットクライアントの作成に関連するすべての問題(永続性、他のクライアントの検出、ステータスの迅速な更新)が引き続き表示されるため、通信自体に集中できます(簡単に確認できることを含む)必要に応じてすべてのトラフィック)。

于 2013-03-11T18:38:24.307 に答える