私は最近、VS.Net 2008 で Quickwatch または Watch を使用してプロパティ値を検査しようとしたときに問題に遭遇しました。 server) は、最初のクエリが正常に完了したように見えた後、デバッガーでプロパティの評価をタイムアウトさせます。
以下は、私の問題に光を当てることを願っています(これを実行するには、データソース名を変更する必要があります):
Imports System.Data.SqlClient
Public Class Thing
Private Function DoSqlQuery() As Integer
Using conn As New SqlConnection("Data Source=MYSERVER;Initial Catalog=master;Integrated Security=SSPI;Asynchronous Processing=true;")
conn.Open()
Using cmd As New SqlCommand("SELECT COUNT(*) FROM sys.tables", conn)
Return DirectCast(cmd.ExecuteScalar(), Integer)
End Using
End Using
End Function
Public ReadOnly Property Value() As Integer
Get
Return DoSqlQuery()
End Get
End Property
Public ReadOnly Property Value2() As Integer
Get
Return DoSqlQuery()
End Get
End Property
Public Shared Sub Main()
Dim t As New Thing
t = t ' Put a breakpoint here.
End Sub
End Class
行にブレークポイントを置きt = t
、次にクイックウォッチ (またはウォッチを追加) してから、展開t
してプロパティ値を表示します。長い遅延 (約 10 ~ 20 秒) の後、展開が完了し、2 つのプロパティ値のうちの 1 つだけが使用可能になります。
ここで、接続文字列を removeAsynchronous Processing=true;
に変更するか、その属性の値を に変更するとfalse
、すべて問題ありません。
接続文字列から属性を削除する以外に、誰かがこの問題に遭遇し、回避策を提供できるかどうかを知りたいです。
ありがとう。