最近テスト用に IIS7 サーバーに公開した ASP.NET アプリケーションがあります。私は「アプリケーション公開」と IIS のことはまったく初めてですが、職場の人々が私を助けてくれて、私や Google と同じように困惑しています。
問題は、コード ビハインドの上部にあるページのプロパティ宣言の 1 つにあります。たとえば、page_load 内でこれらのプロパティの 1 つにアクセスしようとすると、「オブジェクトがインスタンスに設定されていません」という例外が発生します。これは、標準プロパティではなく、共有プロパティでのみ発生します。これが私のプロパティを宣言する方法です:
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」として初期化し、ページの読み込み時にその値をラベルのテキストに適用すると、「オブジェクトが設定されていません...」という例外がスローされますが、 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 に基づくログイン システムを介して行われることにも注意してください。ログインページは、共有されているかどうかに関係なく、プロパティの宣言と使用に関して完全に正常に動作します。ユーザーの検証に成功すると、ログイン ページは応答を行い、問題の原因であるメイン メニュー ページにリダイレクトします。
申し訳ありませんが、これ以上の詳細を提供することはできません.そもそも知らなかったから!このため、私が見逃していたのは本当に明白なものになるのではないかと密かに疑っています。
どんな助けでも大歓迎です!乾杯、ダン