2016-05-20 8 views
0

私はリモートWeb IISサーバでホストされているウェブサイトインタフェースを持っています。ユーザマシンのシリアルポートと通信するためのWebページ#

ユーザーがページ内の1つのボタンをクリックすると、クライアントのローカルマシンに接続されたデバイスからシリアルポート経由でデータを読み込み、読み込みが正常に行われた場合はそのページに表示する必要があります。私が理解する限り、コンソールアプリケーションを作成してクライアントのローカルマシンにインストールしてデータを読み取ることができます。次に、クライアントのローカルマシンからWebサーバーに通信メソッドを渡してページに表示する必要があります。

この時点では、コンソールアプリケーションが実行されているときにデータをデータベースに保存できると思うし、ウェブサイト側では、ボタンをクリックすると定期的にAJAX呼び出しを行ってデータを取得できます。

しかし、ここに問題があります。コンソールアプリケーションが実行されたときにデータベースに格納されるマッピングフィールドが必要です。このフィールドは、WebサイトのAJAX呼び出しで、そのデータを取得してページに表示するように指示します。

これまでのところ、私は2つの方法について考えることができます。 1つの方法は、セッションIDやユーザーIDなどのユニークなキーをWebサイトからコンソールアプリケーションにデータベースに格納することですが、コンソールアプリケーションがコマンドラインから入力を読み取るので、この時点で動作させる方法が見つかりません。 。

もう1つの方法は、特定のマシンID(または他のもの)のように、ローカルコンソールアプリケーションとWebブラウザの両方で捕捉できるような、クライアントのマシンでいくつかの一意のIDを使用することですが、この時点で使用されます。

私の質問を読んでいただきありがとうございました、任意のヘルプやアイデアをいただければ幸いです。

P.Sこれで問題が解決しない場合は、これらの問題すべてに対して別のWindowsアプリケーションを作成する必要があるかもしれません。

答えて

0

あなたが書いたことから、私の理解は、あなたのWebサーバーからクライアントマシン上で実行されているコンソールアプリケーションのメソッドを遠隔から呼び出すことです。

  • コンソールアプリケーションでは、ホストasp.netをコンソールアプリケーションに直接呼び出すことができます。 http://www.asp.net/web-api/overview/older-versions/self-host-a-web-api
  • RadiやMSMQなどのsevicebus pub-subや、必要に応じてコンソールアプリケーションにメッセージを送信し、コンソールアプリケーションから応答を受信するための多くの機能の1つを導入します。
+0

ありがとう、@Deepark。私はそれを考え出したと思う、私はローカルマシンでWCFサービスをホストするためのウィンドウサービスを作成し、ブラウザ側ではJavaScriptを使用してXMLHttpRequestを呼び出すWCFサービス、WCFサービスはローカルシリアルポートからデータを読み取り、処理し、それをdbに変換します。 –

0

最後に、数日間、すべてのリソースをオンラインで調べてみました。

  1. シリアルポートとの通信方法を実装するWCFサービスライブラリを作成します。
  2. WCFサービスをホストするウィンドウサービスを作成します。ここはlinkです。次に、httpを使用してシリアルポートと通信するWCFメソッドにアクセスできます。
  3. Webページで、javascriptを使用してXMLHttpRequstをWCFサービスに送信します。ここでは、WCFサービスがローカルマシンでホストされている間にWebページがWebサーバーでホストされているため、CORSの問題が発生しています。私はしばらくの間この問題で立ち往生し、最後に解決策を見つけたhere
  4. 次に、WebページのボタンをクリックしてWCFサービスに要求を送信し、データを読み取り、処理し、Web APIを呼び出してデータベースに保存することで、シリアルポートが開かれたときは以下のようになります。ウェブページは、データベース内のデータを検索する要求を定期的に送信している間は、そのページに表示します。

更新:

代わりにWCFサービスの、私たちはself-host Web APIを使用することができます。

関連する問題