IIS中的模态对话框或表单错误

时间:2011-09-24 11:15:27

标签: c# .net iis

我在服务器计算机(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中必须有一些安全设置才会导致此问题。

2 个答案:

答案 0 :(得分:0)

我敢打赌,如果你使用ILSpy反编译DLL,你会发现对Message.Box的引用。您可以恢复源代码并删除有问题的代码。

答案 1 :(得分:0)

通过使用密钥签署从PowerBuilder 12生成的自定义DLL来解决此问题。