NullReferenceException в VB.NET после обновления до 4.0 - PullRequest
0 голосов
/ 25 июля 2011

У меня есть решение VB.NET, которое я только что обновил.Первоначально он был в .NET 1.1, я обновил его до .NET 2.0 и убедился, что он будет работать и работать правильно.Затем я обновился с 2.0 до 4.0.Он все еще строится без ошибок, но при попытке запустить я получаю NullReferenceException в Global.asax.vb.Действительно странная вещь: строка, которая выдает исключение, такова:

Dim dt As System.Data.DataTable

Я не пытаюсь использовать переменную, просто объявляю ее.Далее вызывается Function, который возвращает DataTable и устанавливает переменную, но я даже не дохожу до этой строки.Он выбрасывает NullReferenceException на линии Dim.Кто-нибудь сталкивался с этим раньше?Это какая-то проблема с обновлением?

Редактировать

Хорошо, это первая строка в функции.Окружающий код выглядит следующим образом.

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 происходит в новой первой строке вfunction.

    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()

Я выполнил Rebuild Solution перед публикацией.Это веб-приложение, и единственные файлы, которые я вижу в папке bin, это dll-файлы, на которые я ссылаюсь.Я не уверен, что еще я должен убрать.

1 Ответ

1 голос
/ 25 июля 2011

Похоже, что решение, возможно, не было перестроено должным образом и, кажется, выдает исключение, даже если оно на самом деле происходит где-то еще, потому что источник отличается от отладочных символов.Попробуйте очистить решение, вручную удалив все каталоги bin и obj, а затем заново соберите и снова запустите.

...