3

私は最近、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 つだけが使用可能になります。

2 つのプロパティ値のうちの 1 つだけが使用可能です

ここで、接続文字列を removeAsynchronous Processing=true;に変更するか、その属性の値を に変更するとfalse、すべて問題ありません。

接続文字列から属性を削除する以外に、誰かがこの問題に遭遇し、回避策を提供できるかどうかを知りたいです。

ありがとう。

4

1 に答える 1

2

これは Visual Studio 2008 のバグのようです。ほとんど慰めにはならないかもしれませんが、Visual Studio 2010 (および 2012) では解決されているようです。

于 2012-08-24T09:33:53.587 に答える