IIS 7 ASP.NET代码 - 共享属性背后没有初始化

时间:2012-11-30 09:44:38

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

我有一个ASP.NET应用程序,我最近发布到IIS7服务器进行测试。我对整个'应用程序发布'和IIS事物都很陌生,但是工作中的人一直在帮助我,他们就像我和Google一样对此感到困惑。

问题在于我的页面的一个属性声明位于代码顶部,当我尝试访问其中一个属性时,例如page_load,我得到一个'对象未设置为实例'异常。这仅适用于共享属性,而不适用于标准属性。这就是我宣布我的财产的方式:

Public Shared Property sharedPortalController As New Aurum.Genesis.Adapter.Business.Portal.BusinessLogic.PortalControlClass

Public Shared Property sharedSelectedObjectType As String = "Hello World"
Public Shared Property sharedSelectedMessageGUID As String
Public Shared Property sharedSelectedMessageGUIDs As String()
Public Shared Property sharedXMLDocument As XmlDocument

Public Property xmlIndexCounter As Integer = 0

如果我初始化说'sharedSelectedObjectType'为“Hello World”,然后将该值应用于页面加载时标签中的文本,则抛出'Object not set ...'异常,但如果我是要对xmlIndexCounter执行相同操作并将其值应用于标签,它根本没有问题,页面将加载。只有在我尝试访问属性或与属性交互时才会出现这些错误。这就是我在页面加载中尝试与我的属性进行交互的方式,在本例中是“Hello World”标签示例:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If IsPostBack = False Then

        ScriptManager.EnablePageMethods = True

        If Session("LockData") = True Then
        sharedPortalController.RecordLockUsername = Session("username")
        sharedPortalController.LockQueueRecords()
            Session("LockData") = False
        Else
            'Do Nothing
        End If

        lblWelcome.Text = lblWelcome.Text + Session("Username")
        lblDepartment.Text = "Genesis " + Session("Department") + " Department Portal"

        lblDepartment.Text = xmlIndexCounter.ToString


        ReBindGridview()
    End If

End Sub

还值得注意的是,访问此页面是通过基于授权cookie的登录系统。登录页面在属性声明和使用方面表现绝对正常,无论它们是否共享。成功验证用户后,登录页面会对主菜单页面执行response.redirect,这是问题的根源。

对不起,我无法提供更多细节,纯粹是因为我对此很陌生,我真的不知道你可能需要什么进一步的细节,所以如果你还需要其他任何东西,请问并告诉我首先不知道它!出于这个原因,我有一种潜在的怀疑,这将是我错过的非常明显的事情。

非常感谢任何帮助! 干杯,丹

0 个答案:

没有答案