调试崩溃oledbconnection.open上的vshost.exe,没有vshost工作正常

时间:2011-11-08 17:34:37

标签: vb.net visual-studio-2010

我正在运行一个简单的测试应用程序,它打开OLEDB连接,检索单个值,然后关闭。已编译的(控制台)应用程序工作正常,但从IDE运行它会导致静默关闭(如果它是winforms应用程序)或vshost32.exe崩溃(如果它是控制台应用程序)。

devenv在Windows x64上为VB 2010 Express,但我将解决方案上的配置管理器设置为“Debug” - “x86”。enter image description here

Imports System.Data.OleDb

Module Module1

    Sub Main()
        Dim server As String = "xxxxx"
        Dim username As String = "xxxxx"
        Dim password As String = "xxxxx"
        Dim schema As String = "xxxxx"

        Dim connectionString As String = String.Format( _
            "Provider=SLXOLEDB.1;Data Source={0};Initial Catalog={3};User ID={1};Password={2};Extended Properties=LOG=ON;Connect Timeout=5;", _
            server, username, password, schema)

        Dim con As OleDbConnection = New OleDbConnection(connectionString)
        con.Open()

        Dim query As String = "SELECT USERID FROM USERSECURITY WHERE USERCODE=?"
        Dim cmd As New OleDbCommand(query, con)
        cmd.Parameters.AddWithValue("usercode", username)
        Dim userid As String = cmd.ExecuteScalar.ToString

        Console.WriteLine("UserID is {0}", userid)

        cmd.Parameters.Clear()

        con.Close()
        con = Nothing

    End Sub

End Module

2 个答案:

答案 0 :(得分:0)

你可以尝试禁用vshost来查看会发生什么。

我也会查看“输出”窗口,也许你在那里有一些有价值的信息。

答案 1 :(得分:0)

解决方案很简单。

SalesLogix OLEDB提供程序工作正常,但只有在使用管理员权限启动IDE时才能进行调试。

使用procmon进行一些挖掘可能会告诉我们正在访问哪些密钥/文件,但在我们的例子中,我可以使用提升的IDE进行调试。