2011-07-25 21 views
0

私はちょうどアップグレードしたVB.NETソリューションを持っています。もともとは.NET 1.1でした。私は.NET 2.0にアップグレードし、正しくビルドして実行することを確認しました。その後、2.0から4.0にアップグレードしました。まだエラーなしでビルドしていますが、実行しようとするとGlobal.asax.vbNullReferenceExceptionが表示されます。私はちょうどそれを宣言し、変数を使用しようとしていないのです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ファイルです。私は他に何をすべきかわからない。

+1

その行の周りに他のコードを投稿することはできますか?そして、あなたはそれが正しい行であることを確信していますか(あなたはファイルの間違ったバージョンなどを見ているかもしれません)? –

+0

宣言を移動するとエラーも移動しますか?宣言はファイル内で実行される最初のメソッドのコードの最初の行ですか? –

答えて

1

解決策が適切に再構築されていない可能性があり、ソースがデバッグシンボルと異なるため、実際にどこか他の場所で発生していても例外がスローされているようです。ソリューションを掃除し、すべてのbinおよびobjディレクトリを手動で削除してから、再構築して再実行してください。

+1

私はそれを理解しました。アップグレードする前に、すべてのファイルを新しいフォルダにコピーしました。 4.0ソリューションを実行していても、IISはまだ2.0 binフォルダを指していました。私はIISに自信を持ち、働いています。助けてくれてありがとう! – Sheridan

関連する問題