2

WCFサービスをマネージドWindowsサービスとしてホストしていますが、コンシューマー/クライアントが2回目、3回目、または4回目にメソッドを呼び出すと、AccessViolationExceptionが発生し続けます。クラッシュは完全にランダムであるため、後でさらに数回呼び出すまでクラッシュしない場合があります。

読みやすくするために構文が強調表示されたコードは次のとおりです。http://pastebin.com/Z3Z06944

プライベートメソッド「CheckUser」に関するコメントを参照してください。例外が発生している可能性があります。

4

3 に答える 3

0

あなたが投稿したコードを見ましたが、これが WCF と何の関係があるのか​​わかりません。あなたは、FireBirdSql (FbCommand?) を呼び出すコードをコメント アウトすると、AV がなくなると言います。明らかに問題は FireBirdSql にあります。最新バージョンに更新してみるか、クラッシュ レポートを開発者に送信してください。AV (アクセス違反) は通常、p/invoke アンマネージ コード相互運用レイヤーの問題で発生します。WCF シナリオで発生する、ある種のマルチスレッドの問題のように思えます。

(更新: FbSQL 参照を含めるように OP の質問のタイトルを編集)

于 2011-05-17T20:10:52.120 に答える
0

あなたのコードでは、接続を明示的に閉じていません。

using ステートメントを使用しているため、クローズされますが、遅延が発生する可能性があります。

接続の最大数があり、リクエストがすぐに来る場合、最大数に達すると例外が発生する可能性があります。

これにより、エラーのランダムな性質が説明されます。

編集

あなたのコードは、SQL Server インジェクション攻撃に対して脆弱です。修正する必要があります。

問題はロック エラーである可能性があります。ユーザーとパスワードにインデックスがありますか。そうでない場合は、テーブルをロックするテーブル スキャンを実行しています。

于 2011-05-17T20:31:09.793 に答える