【发布时间】:2011-09-24 11:15:26
【问题描述】:
当我在服务器机器(Windows 7、IIS 7)中部署我的应用程序时,我不断收到此错误。 “当应用程序未在 UserInteractive 模式下运行时显示模式对话框或表单不是有效操作。指定 ServiceNotification 或 DefaultDesktopOnly 样式以显示来自服务应用程序的通知。”
问题是我在代码中没有任何 MessageBox 调用。我所做的是,从 PowerBuilder 12 生成一个 DLL,并将该 DLL 添加到 .NET 网站中以生成一些报告。有什么解决办法吗?如果您需要我提供任何其他信息,请告诉我。我真的需要这方面的帮助。
这是堆栈跟踪:
[InvalidOperationException: 显示模态对话框或表单时 应用程序未在 UserInteractive 模式下运行是无效的 手术。指定 ServiceNotification 或 DefaultDesktopOnly 样式 显示来自服务应用程序的通知。]
System.Windows.Forms.MessageBox.ShowCore(IWin32Window 所有者,字符串 文本、字符串标题、MessageBoxButtons 按钮、MessageBoxIcon 图标、 MessageBoxDefaultButton defaultButton、MessageBoxOptions 选项、 布尔显示帮助)+2661926
System.Windows.Forms.MessageBox.Show(字符串文本)+37
c__app_web_main.InitAssembly() +168 APP_WEB.n_app_web_main..ctor() +18 ASP_TEST.getobject.GetData(String queryString) in C:\Projects\ERP\ASP_TEST\ASP_TEST\getobject.aspx.cs:29
ASP_TEST.getobject.Page_Load(Object sender, EventArgs e) in C:\Projects\ERP\ASP_TEST\ASP_TEST\getobject.aspx.cs:20
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o,对象 t,EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +627
编辑: 当我初始化 PB 生成的程序集时会出现问题,它向我抛出异常并试图用消息框警告我。该程序集在我的本地电脑和我的同事中运行良好,因此必须在 IIS 中进行一些安全设置,这会导致此问题。
【问题讨论】:
-
这是由 PowerBuilder 引起的问题。它可能试图警告您某些事情,但这不可能发生。不要使用它。 forums.sybase.com/cgi-bin/…
-
嗯,当我将它部署在本地 IIS 中时,这工作正常,也在我的同事 PC 中(都使用 Windows 7 和 IIS 7)......问题必须与帐户权限有关IIS 正在运行。
-
另外,在您提供的链接中,他似乎设法找到了解决方案:forums.sybase.com/cgi-bin/…