<script runat =“”server“”里面的代码在Debug中运行良好,但在本地IIS </script>上部署时则不行

时间:2013-06-25 14:38:03

标签: asp.net vb.net iis-7

我被要求更新一个旧的VB.NET Web应用程序,这不是我最熟悉的技术,更像是一个桌面人。无论如何,我试图处理它!

我遇到了一个我无法解决的问题(如果问题很奇怪,请原谅我)。首先,代码在生产中运行良好,因为这是客户端源代码。当我以调试模式启动站点时,它在VS中也很有效。一旦我将网站发布到我的本地IIS,页面就会失败

App_Code文件夹包含Database.vb文件,其中包含Database类,使用以下方法:

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)

注意:

  • 数据库类在项目的每个地方都使用,并且工作正常。我注意到的唯一区别是代码是在aspx文件中使用脚本runat =“server”而不是通常的.vb文件。不确定是否会导致问题,因为它在本地运行良好。

  • 我尝试在第18行使用Global.Database,但遇到了同样的问题。

  • 解决方案的目标框架是v4.0。 IIS7中的应用程序池也设置为v4.0

任何想法/导致帮助我解决这个问题将不胜感激:)

提前致谢!

1 个答案:

答案 0 :(得分:0)

根据更正进行编辑:

您需要导入Database的名称空间,默认情况下它将是应用程序名称空间。

<%@ Import namespace = "myappname" %>