0

タイトルはおそらくほとんどの人にとって混乱を招く可能性が高いので、徹底的に説明します.

これは私が得ているエラーです:

アプリケーションが UserInteractive モードで実行されていないときにモーダル ダイアログ ボックスまたはフォームを表示することは、有効な操作ではありません。サービス アプリケーションからの通知を表示するには、ServiceNotification または DefaultDesktopOnly スタイルを指定します。

ただし、サーバー側で使用されている MsgBox の結果としてスローされることはありません。

ミックスの別のレンチ、これは現在の運用サーバーでのみ発生しています。実稼働環境と同じようにセットアップされたテスト サーバー (SSL 証明書が異なることを除いては異なりますが、それは問題ではありません) は問題なく動作しています。開発マシンもエラーなしで動作します。

VB コードビハインドで使用されている現在のコード:

Dim DBconn As New OracleConnect 'Custom class file
Try

        DBconn.Open(Uname, Pword, SelServ)
        If DBconn Is Nothing Then
            errorLabel.Text = "Authentication did not succeed. Check user name and password."
            Exit Sub
        Else
            groups = DBconn.GetUserRole()

            'Create the ticket, and add the groups.
            Dim isCookiePersistent As Boolean = chkPersist.Checked
            Dim authTicket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _
                 txtUsername.Text, DateTime.Now, DateTime.Now.AddMinutes(60), isCookiePersistent, groups)

            'Encrypt the ticket.
            Dim encryptedTicket As String = FormsAuthentication.Encrypt(authTicket)

            'Create a cookie, and then add the encrypted ticket to the cookie as data.
            Dim authCookie As HttpCookie = New HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)

            If (isCookiePersistent = True) Then
                authCookie.Expires = authTicket.Expiration
            End If
            'Add the cookie to the outgoing cookies collection.
            Response.Cookies.Add(authCookie)

            'set session variables
            Session("UID") = txtUsername.Text
            Session("PWD") = txtPassword.Text
            Session("selServ") = StrServer.SelectedValue

            SetupTableNames()

            'MsgBox(groups, MsgBoxStyle.OkOnly, "HRIS User Role")
            Session("gsRole") = groups

            'You can redirect now.
            'Response.Redirect(FormsAuthentication.GetRedirectUrl(txtUsername.Text, False))
            Response.Redirect("~/Account/_Search.aspx")

        End If

    Catch ex As Exception
        errorLabel.Text = "Error authenticating. " & ex.Message
    End Try

OracleConnect クラスのコード:

Public Sub Open(ByVal Uname As String, ByVal Pword As String, ByVal SelServ As String)

    OraDb = "Data Source=" + SelServ +
            ";Persist Security Info=True" +
            ";User Id=" + Uname +
            ";Password=" + Pword

    conn = New OracleConnection(OraDb)
    Try
        conn.Open()
    Catch ex As OracleException
        Select Case ex.Number
            Case 1
                MesgBox("Error attempting to insert duplicate data.", MsgBoxStyle.OkOnly, "HRIS")

            Case 12545
                MesgBox("The database is unavailable.", MsgBoxStyle.Critical, "HRIS")

            Case Else
                MesgBox("Database error: " + ex.Message.ToString(), MsgBoxStyle.Critical, "HRIS")
        End Select

    Catch ex As Exception
        MesgBox(ex.Message.ToString(), MsgBoxStyle.Information, "HRIS")

    End Try
End Sub

クラスファイル内の MesgBox は認識していますが、これらは、テスト済みで正常に動作するプログラム内で動作する Javascript を使用する Sub を参照しています。

だから私の質問は:

まだ見つかっていない IIS 7.0 で、この応答サーバー側をトリガーするものはありますか?

IIS で実行できない場合、検討すべき代替手段はありますか?

編集: この問題の解決策は、ASP または VB コード内ではなく、サーバー上に設定された Oracle にあります。今後同様の問題が発生する場合は、TNS_ADMIN 環境/システム変数と TNSNAMES.ORA ファイルを調べて、それらが正しいことを確認することをお勧めします。これらの変更を行った場合は、必ずサーバーを再起動してください。私の手順では、TNSNAMES.ORAファイルが正しいことを確認し、TNS_ADMIN環境変数が設定され、次に「set tns_admin = {filepath}」を使用してcmdプロンプトで、サーバーを再起動し、サイトが完全に機能していることを確認しました。

4

1 に答える 1

0

この問題の解決策は、ASP または VB コード内にあるのではなく、サーバー上にセットアップされた Oracle にあります。今後同様の問題が発生する場合は、TNS_ADMIN 環境/システム変数と TNSNAMES.ORA ファイルを調べて、それらが正しいことを確認することをお勧めします。これらの変更を行った場合は、必ずサーバーを再起動してください。私の手順では、TNSNAMES.ORAファイルが正しいことを確認し、TNS_ADMIN環境変数が設定され、次に「set tns_admin = {filepath}」を使用してcmdプロンプトで、サーバーを再起動し、サイトが完全に機能していることを確認しました。

于 2013-08-05T17:03:57.823 に答える