我在服务器计算机(Windows 7,IIS 7)中部署应用程序时遇到此错误。 “当应用程序未在UserInteractive模式下运行时显示模式对话框或表单不是有效操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。”
问题是我在代码中没有任何MessageBox调用。我所做的是,从PowerBuilder 12生成一个DLL,并在.NET网站中添加DLL以生成一些报告。对此有何解决方案?如果您需要我提供任何其他信息,请与我们联系。我真的需要帮助。
继承堆栈跟踪:
[InvalidOperationException:显示模式对话框或表单时 应用程序未在UserInteractive模式下运行无效 操作。指定ServiceNotification或DefaultDesktopOnly样式 显示来自服务应用程序的通知。]
System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner,String 文本,字符串标题,MessageBoxButtons按钮,MessageBoxIcon图标, MessageBoxDefaultButton defaultButton,MessageBoxOptions选项, Boolean showHelp)+2661926
System.Windows.Forms.MessageBox.Show(String text)+37
c__app_web_main.InitAssembly()+ 168 APP_WEB.n_app_web_main..ctor() +18 ASP_TEST.getobject.GetData(String queryString)in C:\项目\ ERP \ ASP_TEST \ ASP_TEST \ getobject.aspx.cs:29
ASP_TEST.getobject.Page_Load(Object sender,EventArgs e)in C:\项目\ ERP \ ASP_TEST \ ASP_TEST \ getobject.aspx.cs:20
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,对象t,EventArgs e)+14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e)+99
System.Web.UI.Control.LoadRecursive()+50
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 627
修改 当我正在初始化PB生成的程序集时,会出现问题,它会抛出异常并尝试用消息框警告我。该程序集在我的本地PC和我的同事中工作正常,因此IIS中必须有一些安全设置才会导致此问题。
答案 0 :(得分:0)
我敢打赌,如果你使用ILSpy反编译DLL,你会发现对Message.Box的引用。您可以恢复源代码并删除有问题的代码。
答案 1 :(得分:0)
通过使用密钥签署从PowerBuilder 12生成的自定义DLL来解决此问题。