データベースにアクセスするためにエンティティフレームワーク6を使用します。 開発マシンでは、SQL Server 2014 Expressエディションがあります。 そして、EF6を使用して複雑なクエリを作成するとうまくいきますが、結果が得られます。本番マシン上でデータベースにアクセスするとタイムアウト期限切れのエラーが発生するのはなぜですか?
生産に開発マシンからコードを移動するとき、私は、SQL Server 2012を持っているとクエリが、私はこのエラーを取得解雇:
{"Message":"System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out\r\n at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action
1 wrapCloseInAction)\r\n at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)\r\n at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()\r\n at System.Data.SqlClient.SqlDataReader.get_MetaData()\r\n at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource
1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)\r\n at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)\r\n at System.Data.Entity.Infrastructure.Interception.InternalDispatcher1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func
3 operation, TInterceptionContext interceptionContext, Action3 executing, Action
3 executed)\r\n at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)\r\n at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)\r\nClientConnectionId:4a0350b7-e91e-42a4-ae04-ae94e294c26a\r\nError Number:-2,State:0,Class:11"}
私はそれながら本番マシン上で上記のエラーを取得する理由はすべてのアイデアを開発にはうまくいきますか?
タイムアウトの設定は何ですか?タイムアウトを増やしてみましたか?あなたはそれが完了したかどうかを見るために0 /無制限に設定しようとしましたか? – Tanner
@Tanner、私は接続ストリングで(生産現場ではなく、開発マシーンではない) – Michael
@Michaelタイムアウトを設定していない場合、明示的に設定するのが最も良いデフォルト値があります。私はデフォルトが30秒だと思う。 – Tanner