2013-06-25 24 views
0

我被要求更新舊的VB.NET web應用程序,這不是我最舒適的技術與更多的桌面人物。無論如何,我試圖處理它!<script runat =「server」>裏面的代碼在調試時效果很好,但是在本地IIS上部署時沒有效果

我面臨一個我無法解決的問題(請原諒我,如果問題很奇怪)。首先,代碼在生產中運行良好,因爲這是客戶端源代碼。當我在調試模式下啓動站點時,它在VS中也能很好地工作。當我在網站上公佈,以我的本地IIS,頁面失敗

App_Code文件夾中包含一個Database.vb文件,包含一個數據庫類,有以下方法:

Option Strict On 
Imports System.Text 
Imports System.Data 
Imports System.Data.SqlClient 
Imports System.Web.Caching 
Imports System.Collections 

Public Class Database 

    Public Shared Sub ExecuteDataTable(ByVal strSQL As String, ByRef dt As DataTable) 
     ... 
    End SUb 

我有一個ASPX包含以下代碼

<script runat="server"> 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     LoadGrid() 
    End Sub 

    Private Sub LoadGrid() 
     Dim strSQL As String = "sp_XXXXXXXXXXXXXXXXXXX" 
     Dim dt As New System.Data.DataTable 
     Database.ExecuteDataTable(strSQL, dt) 
     grd_Data.DataSource = dt 
     grd_Data.DataBind() 
    End Sub 
</script> 

一切頁作品在本地調試正常,但只要我公佈我的本地IIS7的網站我得到這個錯誤:

Server Error in '/' Application. 
Compilation Error 
Compiler Error Message: BC30456: 'Database' is not a member of '<Default>'. 
Line 18:   Global.Database.ExecuteDataTable(strSQL, dt) 

注:

  • 數據庫類是到處被使用在項目和工作正常。我在這裏注意到的唯一區別是,代碼在使用腳本runat =「server」而不是通常的.vb文件的aspx文件中。不知道它會導致問題,因爲它在本地運行良好。

  • 我試着在第18行使用Global.Database,但是遇到了同樣的問題。

  • 該解決方案的目標框架是v4.0。在IIS7應用程序池也被設置爲V4.0

任何想法/鉛幫我解決這個問題,將不勝感激:)提前

謝謝!

+2

注意:如果我是[你](http://msdn.microsoft.com/en-us/library/ms187926.aspx),我會失去'sp_'前綴:「避免在命名過程中使用** sp _ **前綴,這個前綴被SQL Server用來指定系統過程,如果有一個同名的系統過程,使用前綴可能導致應用程序代碼中斷。 –

+0

這是真的,這就是我通常實際做的,但我寧願有這個應用程序,我只是在重新命名數百個存儲特效之前拿到手中的當前代碼;) – Pascamel

回答

0

編輯基於更正:

需要導入數據庫的命名空間,默認情況下將應用程序命名空間。

<%@ Import namespace = "myappname" %> 
+0

App_Code是一個dorectory而不是名稱空間,我導入了「myappname」命名空間,它實際上工作,感謝提示@Tombala!它現在在我的本地IIS上運行。但我仍然不明白爲什麼它在生產IIS上工作_without_此導入 – Pascamel

+0

好點。我不確定確切的名稱空間。我編輯過,以便將來的訪問者可以找到更正確的答案。不知道爲什麼它在您部署的地方發揮作用。我很想知道你是否知道。 – Tombala

相關問題