vb.net代码在本地工作,但不在Web服务器上

时间:2014-02-12 13:51:51

标签: mysql asp.net vb.net visual-studio-2013

我有一个有趣的问题。我的一个数据库相关代码在本地机器上运行良好。但它在第三方Web服务器上发布时不返回任何内容。

以下是代码段:

Public Function getUserAuthDataWithUserId(ByRef Connection As MySqlConnection,
                                              ByVal UserId As String
                                             ) As DataTable

    Dim cmd As String
    cmd = "select * from tbl_md_userauth where tf_userid = '" + UserId + "' "
    getUserAuthDataWithUserId = ExecuteSQL(Connection, cmd)
End Function

ExecuteSQL函数是:

Public Function ExecuteSQL(ByRef Connection As MySqlConnection,
                               ByVal SQLStatement As String
                                ) As DataTable
    Dim ds As New DataSet
    Dim da As New MySqlDataAdapter

    Try
        da = New MySqlDataAdapter(SQLStatement, Connection)
        da.Fill(ds, "tbl_Return")
        ExecuteSQL = ds.Tables("tbl_Return")

    Catch ex As Exception
        msgbox ("exception !")
    End Try
End Function

请放心:

  1. 数据库表具有正确的数据。从本地计算机连接到远程桌面时,代码可以正常工作。
  2. 使用本地IIS和本地数据库时,代码可以正常工作。
  3. 我也尝试过两次或三次重新发布代码。
  4. Web服务器的帮助台说他们的服务器没有问题。

    有什么问题的任何线索?

2 个答案:

答案 0 :(得分:1)

您似乎正在吞咽您的例外情况。该代码似乎使用msgbox显示错误,但它将显示在隐藏配置文件下的服务器上,而不会发送到浏览器进行显示。您需要一些其他方式来显示或记录在Web环境中有效的错误。

话虽如此,您是否能够获得与数据库的任何连接,并且此方法失败,或者您的所有数据库请求都失败了?我怀疑您在数据库配置中使用集成身份验证,但同一用户在服务器上不起作用,因为IIS作为应用程序池中的其他用户运行。尝试更改开发环境以指向服务器上的数据库,看看是否有任何错误。如果您使用的是托管环境,我建议您在数据库中设置一个命名用户,并在连接字符串中使用该用户,而不是使用集成身份验证。

答案 1 :(得分:0)

最终,它发现是服务器方面的问题。帮助台修复了它。我还不知道他们究竟修正了什么。我听到他们的消息后,我会尽快将其发布在这里。

感谢所有贡献的人。