プロが教える店舗&オフィスのセキュリティ対策術

C#+SqlServerでC/Sアプリを作りました。
しかし、現在下記の問題があります。
ご存知の方いらっしゃいましたら、教えてください。

クライアント側はデータをサーバー側に送信します。
サーバー側はデータを受信しながらSqlServerに保存します。
軽量のデータでやるなら、問題は出ません。
しかし、8GBのデータでやると、その途中、いつも下記のエラーが出ます。

Class:11
Index #0
Message: タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
LineNumber: 0
Source: .Net SqlClient Data Provider
Procedure:
System.Data.SqlClient.SqlException: タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。
場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
場所 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
場所 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
場所 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
場所 System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
場所 System.Data.SqlClient.TdsParserStateObject.ReadByte()
場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
場所 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
場所 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
場所 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
場所 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
場所 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
場所 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
場所 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
場所 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
場所 System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item)
場所 System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item)
場所 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
場所 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
場所 System.Data.Linq.DataContext.SubmitChanges()

その他:
 SqlServer2008 R2
 C# .Net3.5
WindowsServer2008 R2

A 回答 (1件)

8GB の何をどういう風に送っているのかまったく書かないのですね。


Command オブジェクトを使用しているのならタイムアウト値を無制限にするとか。
    • good
    • 0
この回答へのお礼

ありがとうございました。

接続文字列のTimeOutとCommandTimeoutの時間を延ばすことで解決しました。

connectionString="Data Source=sdfsdfsdf;Initial Catalog=AERIS_ONLINE;Persist Security Info=True;Connection Timeout=3600;"

dc.CommandTimeout = 3600;

お礼日時:2011/05/23 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す