0

クライアント アプリケーションと Web アプリケーション (またはサービス、UI なし) が必要で、デスクトップ アプリケーション内から上記の Web サービスに接続し、2 つの同時ネットワーク ストリームを使用したいと考えています。そのうちの 1 つはデータのアップロードと読み取り用です。サーバー上で、もう1つはクライアントアプリケーションに送信するためのものです。

私は、WCF などのそれ以上のものを使用するソリューションを探しているわけではありません。Web サーバーとクライアント アプリケーション間の接続を作成し、純粋なバイナリ データを交換する方法が必要なだけです。私はプロトコルを自分で実装します。WCF が提供するようなエンティティやカプセル化は探していません。

ここでは、どのプロジェクト タイプが最適な選択なのかさえわかりません。空の ASP.NET アプリケーションを FTP にアップロードすることを考えましたが、アプリケーションを接続可能にするために次に何をすべきかわかりません。もちろん、完全な解決策を求めているわけではなく、サーバーとクライアント間の単純で単純な接続を確立する方法に焦点を当てたいくつかの記事を求めています。サーバーがクライアントをすぐに更新できるようにしたいので、ストリームを取得する方法を探しています。

編集:サービスはASP.NETホスティングに配置されることを意図しており、制限などがある場合、ポートがこれらでどのように機能するかわかりません。

4

4 に答える 4

1

「Web サービス」と「ネットワーク ストリーム」は相容れない概念です。Web サービスは (理想的には) ステートレスで切断されているため、基盤となるネットワークがどのように機能するかに関係なく機能します。メッセージはクライアントからサーバーへのみ交換され、HTTP 要求/応答のペアにカプセル化されます。だから「ウェブサービス」。

「純粋なバイナリデータ」を交換したい場合は(あなたが言うように)、ソケットを操作するだけです(または、使いやすいAPIでソケットをラップする.NETのTcpClientを使用します)。ASP.NET はこれには不適切です。

技術的には、ASP.NET ホスト プロセス内で実行されるソケットを使用するアプリケーションを使用できますが、セキュリティの設定方法によっては機能しない可能性があり、ASP.NET プロセスのライフサイクルによってもバインドされます (したがって、IIS によってアクティブ化され、警告なしにいつでもシャットダウンまたはリサイクルできます)。

于 2012-07-31T22:30:51.447 に答える
0

MVC4 APIControllerを見てください。メソッドがXMLまたはJSON(またはその他の好きなもの)を返すことを除いて、ストックMVCとほとんど同じように機能します。

例えば

/api/Users/Get

次のようなものを返すことができます

{
    {"Username":"Bob", "Id":3},
    {"Username":"Steve", "Id":4}
}

特別な戻り値の型を使用して、ファイルやその他のストリームを返すこともできます。モデルを使用して、厳密に型指定された検証済みの入力を取得することもできます。

完全な CRUD コントローラーと、デスクトップ アプリで複製できる JS からのサンプル AJAX 呼び出しを示す例がここにあります。

于 2012-07-31T22:35:30.617 に答える
0

これには ASP.NET Web サービス (ASMX) を使用したくありません。これはレガシー テクノロジであり、新しい開発には使用しないでください。

なぜWCFを使いたくないのですか? 複雑すぎると思いますか?WCF の利点は、独自のプロトコルを作成する複雑さがなくなることです。

また、どのバージョンの .NET を使用していますか? .NET 4.0 では、WCF の構成がはるかに簡単になります。

于 2012-07-31T22:36:37.607 に答える
0

これは、WCF を使用した単純なデュプレックスの例です。試してみて、パフォーマンスが十分かどうかを確認し、別のバインディング (net.tcp など) を使用してみてください。WCF は本当に使いやすいツールです。それに慣れると、あなたはそれを好きになるでしょう。

Learning WCFの WCF のバインドに関する章も確認してください。

于 2012-07-31T22:56:22.443 に答える