2016-03-21 8 views
0

私はASP.NETを初めて使用しており、RFIDリーダーと通信するアプリケーションを開発する必要があります。

これを行うには、ユーザーインターフェイスを管理する別のASP.NETプロジェクトがあるうちに、リーダーとの通信を管理するスレッドを実行するDLLプロジェクトがあります。

これらの2つのプロジェクトは同じソリューションに存在するため、ASP.NETプロジェクトはDLLプロジェクトを参照します。

私の "Global.asax"ファイルは、リーダー(DLLプロジェクト)を初期化し、内部にあるスレッドを実行し、カードが内部にあるときにDLLが起動する "CardInside"などのイベントを登録します読者。

このスレッドが何もしないため実際に実行されているかどうかは間違いありません。私は、その部分が実行されているかどうかを確認するために複数のブレークポイントを設定していますが、何もそこに停止しません。

スレッドに関するasp.netに関する問題を読んだことがありますが、このスレッドはhttpリクエストで使用されていないため、
-ISSサーバーのスレッドをWebページと同時に実行していますか?

- aspx.csファイルを登録します。別のオブジェクトによって起動されたイベントを正常に登録しますか?それはWebアプリケーションではないかのようにですか?

- ビジュアルスタジオ2015を使用していますが、DLLのコード行にメッセージを表示するためにDEBUGオブジェクトを使用できますか?

asp.netはスレッドを実行するDLLを参照します

ありがとうございます。

答えて

0

はい、要求がないIIS内で実行中のスレッドに問題があります。 IISに要求がない場合、AppDomainが破棄され、背景を実行しているスレッドがThread.Abort()になります。

IISをコードから移動して、実際のWindowsサービスに変更する必要があります。あなたはいつもそれを実行したい。その後、IISの部分をWindowsサービスと話す(またはその逆)ことで、Webコンポーネントが何であれ処理することができます。

+0

だから私が間違っていないなら、私はDLLプロジェクトをサービスに変えて、それを私のWebアプリケーションから呼び出すのですが、それはライトですか? – user2413439

+0

あなたのウェブアプリケーションが何をしているのか分かりませんが、そうするのは正しいことです。 –

+0

ウェブアプリは、RFIDカード内の金額をテキストボックスに表示し、ユーザーがボタンをクリックできるようにします。それは非常に簡単です。 – user2413439

関連する問題