私はちょうどアップグレードしたVB.NETソリューションを持っています。もともとは.NET 1.1でした。私は.NET 2.0にアップグレードし、正しくビルドして実行することを確認しました。その後、2.0から4.0にアップグレードしました。まだエラーなしでビルドしていますが、実行しようとするとGlobal.asax.vb
にNullReferenceException
が表示されます。私はちょうどそれを宣言し、変数を使用しようとしていないのです4.0へのアップグレード後にVB.NETでNullReferenceExceptionが発生する
Dim dt As System.Data.DataTable
:本当に奇妙なことは、例外をスローして行はこれです、です。さらにFunction
が呼び出され、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()関数は、点心やif文ではないのApplication_AuthenticateRequestの最初の行です。
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ファイルです。私は他に何をすべきかわからない。
その行の周りに他のコードを投稿することはできますか?そして、あなたはそれが正しい行であることを確信していますか(あなたはファイルの間違ったバージョンなどを見ているかもしれません)? –
宣言を移動するとエラーも移動しますか?宣言はファイル内で実行される最初のメソッドのコードの最初の行ですか? –