如何解决错误:当应用程序未在UserInteractive模式下运行时显示模式对话框或窗体不是有效操作

Dar*_*sak 15 asp.net

我正在研究项目.在我的系统中,当我运行项目时,它运行良好,但在我检查后将其上传到我的域,然后它显示错误,如:

"当应用程序未在UserInteractive模式下运行时显示模式对话框或表单不是有效操作.指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知."

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.InvalidOperationException:当应用程序未在UserInteractive模式下运行时显示模式对话框或窗体不是有效操作.指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知.

这是什么原因,我该如何解决?

请帮我...

谢谢.

Nef*_*iis 11

您100%可以在服务器端执行此操作...

     Protected Sub Button3_Click(sender As Object, e As System.EventArgs)
    MesgBox("Test")
End Sub

Private Sub MesgBox(ByVal sMessage As String)
    Dim msg As String
    msg = "<script language='javascript'>"
    msg += "alert('" & sMessage & "');"
    msg += "<" & "/script>"
    Response.Write(msg)
End Sub
Run Code Online (Sandbox Code Playgroud)

这里实际上有很多方法可以解决这个问题http://www.sislands.com/coin70/week1/dialogbox.htm

  • 如果你要打倒我,至少告诉我原因.我知道这很有效,因为我以这种方式进行了一些调试. (2认同)

Ant*_*ula 10

您无法从ASP.NET应用程序中显示ON SERVER对话框,当然,您可以这样做,但由于您的用户使用浏览器并且无法看到服务器上引发的消息,因此没有任何意义.您必须了解网站的工作原理,服务器端代码(在您的情况下为ASP.NET)在服务器上生成html,javascript等,然后浏览器加载该内容并将其显示给用户,因此为了向用户提供模态消息框用户必须使用Javascript,例如警报功能.

以下是asp.net的示例:

http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx


小智 10

可以通过添加来解决此错误MessageBoxOptions.ServiceNotification.

MessageBox.Show(msg, "Print Error", System.Windows.Forms.MessageBoxButtons.YesNo, 
   System.Windows.Forms.MessageBoxIcon.Error,     
   System.Windows.Forms.MessageBoxDefaultButton.Button1, 
   System.Windows.Forms.MessageBoxOptions.ServiceNotification); 
Run Code Online (Sandbox Code Playgroud)

但是,如果您的Web应用程序安装在IIS或服务器上,它将不会显示任何对话框.因为在IIS或服务器中它托管在没有任何桌面的工作进程上.