2017-02-15 21 views
0

私はefコードファーストを使用してWeb APIプロジェクトを作成しています。簡単なクエリでは、うまく動作します。未処理の例外が実行時に発生しました。しかし、加入の多いクエリのために、それはEFコードファースト - System.ComponentModel.Win32Exception:待機操作がタイムアウトしました

説明は述べています(4テーブルでクエリを実行する場合、現在私が問題に遭遇してい合流時には、一つでもテーブルクエリは、このエラーが出ています)現在のウェブリクエストのエラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。

例外の詳細:System.ComponentModel.Win32Exception:待機操作が

をタイムアウトした奇妙なことは、私は、クエリ「は、それぞれについて」クエリを実行するかのいずれかでのブレークポイントを置いたときに、それが正常に動作し、あります'For Each'の中の値。ブレークポイントを削除すると、このエラーが出ます。なぜこうなった?

MigrationsフォルダのConfiguration.vbファイルに以下のコードを入れてみましたが、まだ動作しません。

CommandTimeout = Int32.MaxValue 

また、SQL Serverの接続設定も確認しました。また助けにはならない。

Tools -> Options -> Query Execution -> Execution Timeout = 0s 

私はまた、100000にIISでのチャネルのタイムアウトを変更したが、それは同様に動作しません。

Connections pane -> click the server node -> Sites node -> In Actions pane, click FTP Site Defaults -> Connections -> Control Channel Timeout and Data Channel Timeout and Unauthenticated Timeout i set them to = 100000 

私は何が生産段階で発生します、各クエリにブレークポイントを入れておく必要があった場合、私は心配していますか?誰でも私を助けてくれますか?

+0

デバッガを接続しないとブレークポイントにヒットしません –

+0

どうすればいいですか? – Nurul

+0

これは私があなたが生産上のブレークポイントを持つことを心配して答えたものです。 –

答えて

0

私はMVC5でEF6を使用しています。これまでのところ、Code-Firstの移行(サーバーからDBテーブルをインポート)で作成されたDbContextファイルにCommandTimeoutを配置することを示唆する回答はありませんでした。だから、私と同じボートにいる他の人のために、ModelsフォルダのDbContext.vbファイルのNew()コンストラクタの下にコードを入れてください。

Me.Database.CommandTimeout = Int32.MaxValue 

私も同様に移行フォルダにConfigurations.vbファイルに

CommandTimeout = Int32.MaxValue 

を置きます。 Configurations.vbファイルでCommandTimeoutを削除しようとすると、クエリの実行に時間がかかったようです。

関連する問題