0

私は私の心を失っていることを知っています。私は何かをしましたが、アプリがデータベースにアクセスしているときに、「クエリを実行できませんでした...何とか何とか何とか」というエラーが表示されます

内部メッセージには、「タイムアウトの期限が切れました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」と表示されます。

例外にあるSQLを見ると、何とか何とか何とか@p0何とか@p1などと書かれています。 @p1to@p3は、期待どおりに定義されていますが、@p0として定義されていCastle.Proxies.UserProxyます。わかりましたので、SQLをssmsクエリに入れ、toのプロパティを@p1サブしてから@p3、期待するプロパティをサブすると、@p0すぐに返されます。

それでは、簡潔に説明できるかどうか見てみましょう。

  1. 私のエラーは、SQLを実行できず、SQLがタイムアウトしたことを示しています。
  2. 私のエラーメッセージにはSQLがあります。
  3. SQL には 4 つのパラメーターがあります@p0,@p1,@p2,@p3
  4. エラーは、次のように定義されたパラメータを示しています

    \r\nPositional parameters:  #0>Castle.Proxies.UserProxy #1>2 #2>2 #3>/MenuItem/Calendar #4>/MenuItem\r\n
    
  5. SQL を ssms クエリにコピーし、1 (予想される値)、2、2、'/MenuItem/Calendar'、'MenuItem' を代入すると、SQL はすぐに返されます。

ターネーションで何が起こっているのか。

助けてください

ライフ


編集


エラーが見つかりました。global.asax に onRequestEnd (または何か) があります。そのイベントハンドラで、終了トランザクションをコメントアウトしました。ログイン時に user.lastlogindate を更新し、次のページで同じユーザーをロードしようとしました。トランザクションが閉じられていないため、ロックされていたと思います。さらに、デプロイ時に global.asax をプッシュしないため、ローカルではなく製品で動作していた理由が説明されます。


コンパイルされているので、prodについては意味がありません。なんでもいい。気にしないで


既存でごめんなさい。

4

1 に答える 1

1

単純なクエリのタイムアウトについては (特に、SQL 自体を実行するとすぐに返されると言っているため)、データベース サーバーが応答していないか、トランザクションとロックに問題がある可能性があります。トランザクションスコープを使用していますか?

パラメータに関しては、これはプロキシの ID が抽出される前に値を表示する場合にすぎない可能性があります。

より正確な回答を得るには、何をしているのかを示す必要があります。

于 2012-12-19T11:51:41.647 に答える