升级到4.0后VB.NET中的NullReferenceException

升级到4.0后VB.NET中的NullReferenceException,vb.net,.net-4.0,nullreferenceexception,Vb.net,.net 4.0,Nullreferenceexception,我有一个刚刚升级的VB.NET解决方案。它最初是在.NET1.1中,我升级到了.NET2.0,并验证了它能够正确构建和运行。然后我从2.0升级到4.0。它仍然在构建中,没有出现任何错误,但当我尝试运行时,在Global.asax.vb中会出现NullReferenceException。真正奇怪的是,引发异常的行是: Dim dt As System.Data.DataTable 我不想使用变量,只是声明它。再往下调用一个函数,该函数返回一个数据表,并设置变量,但我甚至没有到达该行。它正在Di

我有一个刚刚升级的VB.NET解决方案。它最初是在.NET1.1中,我升级到了.NET2.0,并验证了它能够正确构建和运行。然后我从2.0升级到4.0。它仍然在构建中,没有出现任何错误,但当我尝试运行时,在
Global.asax.vb
中会出现
NullReferenceException
。真正奇怪的是,引发异常的行是:

Dim dt As System.Data.DataTable
我不想使用变量,只是声明它。再往下调用一个
函数
,该函数返回一个
数据表
,并设置变量,但我甚至没有到达该行。它正在
Dim
行上抛出
NullReferenceException
。以前有人见过这个吗?这是升级的问题吗

编辑

这是函数的第一行。周围的代码如下所示

Private Function GetUserRoles() As String    
    Dim dt As System.Data.DataTable
    Dim oDBLookup As New DBLookups
我把它更新成这个,这应该没什么区别

Private Function GetUserRoles() As String
    Dim oDBLookup As New DBLookups
    Dim dt As System.Data.DataTable
现在,NullReferenceException发生在函数的新的第一行上

    Dim oDBLookup As New DBLookups
GetUserRoles()函数是Application_AuthenticateRequest中的第一行,它不是Dim或If语句

Sub Application_AuthenticateRequest(ByVal sender As Object, ByVal e As EventArgs)
    ' Fires upon attempting to authenticate the user
    Dim authCookie As HttpCookie = Context.Request.Cookies("GROUPCOOKIES")
    Dim Groups As String
    Dim noGroups As Boolean = False
    If authCookie Is Nothing Then
        Groups = GetUserRoles()

在发布之前,我做了一个重建解决方案。这是一个web应用程序,我在bin文件夹中看到的唯一文件是我正在引用的dll文件。我不确定还应该清理什么。

听起来解决方案可能没有正确重建,并且似乎在那里抛出异常,即使它实际上发生在其他地方,因为源代码与调试符号不同。尝试清理解决方案,手动删除所有bin和obj目录,然后重建并重新运行。

您能在该行发布一些其他代码吗?您确定这是正确的行吗(您可能正在查看文件的错误版本等)?如果移动声明,错误是否也会移动?声明是文件中执行的第一个方法中的第一行代码吗?我猜出来了。升级之前,我将所有文件复制到一个新文件夹中。IIS仍然指向2.0 bin文件夹,即使我正在运行4.0解决方案。我重新发布了IIS,它正在工作。谢谢你的帮助!