2009-08-13 15 views
0

vb6で作成されたExeは、サーバで継続的に実行されるとハングしますか?このexeには、バイオメトリックリーダーからデータを受け取ってSQL Server 2005に保存するために使用されるwinsockコンポーネントがあります。実際には、これはバイオメトリックリーダーで実行されたリアルタイムのリストです。このexeでは、SQLで保存されたレコードを表示するDataGridコンポーネントを使用しました。このexeとデータをリフレッシュするには?EXEがサーバで稼働しています

答えて

0

GUIを表示している場合は、技術的にはサーバーで実行されていないと言えます。しかし、私はまだこれをどうやってプログラムが「ハングアップ」になるのか見ていない。

VB6メモリリークには注意が必要です。確実に行うべきことの1つは、SP6バージョンのVB6ランタイムと「拡張ランタイム」(VB6に付属する一連のコントロール)を使用することです。もう1つはおそらくコードを調べて、時間の経過とともに孤立したオブジェクトが累積する循環オブジェクト参照を探すことです。また、MDAC 2.7まで決して固定されていないADOメモリリークはほとんどありませんでしたが、それらのほとんどはVB6プログラムに影響しません。

他にもハングアップの原因があると思われますが、そのほとんどはDoEvents呼び出しを含むループなどのロジックが間違っている可能性があります。 Winsock for TCPを完全に理解せずに使用すると、時にはうまくいくようなプログラムが生成され、その後に別のときに起こることを待っているプログラムが生成される可能性があります。すべてのDataArrivalイベントで最大1バイトのデータをカウントできることを忘れないでください。独自のストリームアセンブリとメッセージ解析ロジックを作成する必要があります。送信者の1つのSendData呼び出しが、受信者のGetData呼び出しと同じではありません。

Sent:  abc 
Received: a 
      bc 

「abc」を取得するまでGetDataを呼び出すプログラムでは、絶対に表示されません。

関連する問題