Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IIS中的模态对话框或窗体错误_C#_.net_Iis - Fatal编程技术网

C# IIS中的模态对话框或窗体错误

C# IIS中的模态对话框或窗体错误,c#,.net,iis,C#,.net,Iis,在服务器计算机(Windows 7、IIS 7)中部署应用程序时,我不断遇到此错误。 “当应用程序未在UserInteractive模式下运行时,显示模式对话框或窗体是无效的操作。请指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。” 问题是代码中没有任何MessageBox调用。我所做的是,从PowerBuilder 12生成一个DLL,并在.NET网站中添加该DLL以生成一些报告。有什么解决办法吗?如果您需要我提供任何其他信息,

在服务器计算机(Windows 7、IIS 7)中部署应用程序时,我不断遇到此错误。 “当应用程序未在UserInteractive模式下运行时,显示模式对话框或窗体是无效的操作。请指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。”

问题是代码中没有任何MessageBox调用。我所做的是,从PowerBuilder 12生成一个DLL,并在.NET网站中添加该DLL以生成一些报告。有什么解决办法吗?如果您需要我提供任何其他信息,请告诉我。我真的需要帮助

下面是stacktrace:

[InvalidOperationException:在以下情况下显示模式对话框或窗体: 应用程序未在UserInteractive模式下运行无效 操作。指定ServiceNotification或DefaultDesktopOnly样式 显示来自服务应用程序的通知。]
System.Windows.Forms.MessageBox.ShowCore(iwin32窗口所有者,字符串 文本、字符串标题、MessageBoxButtons按钮、MessageBoxIcon图标、, MessageBoxDefaultButton默认按钮,MessageBoxOptions选项, 布尔值showHelp)+2661926
System.Windows.Forms.MessageBox.Show(字符串文本)+37
c_uuuapp_web_main.InitAssembly()+168 app_web.n_uapp_web_main..ctor() +18中的ASP_测试.getobject.GetData(字符串查询字符串) C:\Projects\ERP\ASP\u TEST\ASP\u TEST\getobject.aspx.cs:29
ASP_TEST.getobject.Page_加载(对象发送器,事件参数e)中的 C:\Projects\ERP\ASP\u TEST\ASP\u TEST\getobject.aspx.cs:20
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o、 对象t,事件参数e)+14
System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象发送方, EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e)+99
System.Web.UI.Control.LoadRecursive()+50
System.Web.UI.Page.ProcessRequestMain(布尔值 IncludeStages前同步点,布尔值IncludeStages后同步点) +627

编辑:
问题发生在我初始化PB生成的程序集时,它会向我抛出一个异常并试图用messagebox警告我。该程序集在我的本地pc和同事中运行良好,因此IIS中必须有一些安全设置,这导致了此问题。

我敢打赌,如果使用反编译DLL,您将找到对Message.Box的引用。您可能会恢复源代码并删除有问题的代码。

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

这是由PowerBuilder引发的问题。它可能是想提醒你一些事情,但那是不可能发生的。不要用它。好吧,当我在本地IIS中部署它时,这很好,也在我同事的PC中(都使用Windows 7和IIS 7)。。。这个问题一定与IIS正在运行的帐户的权限有关。另外,在您提供的链接中,看起来他已经找到了解决方案:嗯,即使我从源代码中删除MessageBox调用,我也无法处理导致MessageBox显示的异常,直到我知道是什么导致了问题。嗯,如果你有消息来源,我想你也能做到,不是吗?你以前听说过调试器和断点吗?ShutterBug,我现在也有同样的问题。您是如何使用密钥对DLL进行签名的?有几种方法,我使用了PowerBuilder内置的部署工具。执行此操作时,您选择了哪些选项?您是否只标记了延迟标志?或者您是否使用“允许部分受信任的调用方”属性标记程序集?我从CMD生成了一个密钥文件,并使用该密钥文件对使用PowerBuilder自己的部署实用程序从PowerBuilder 12生成的DLL进行签名。在本例中,我们收到此消息是因为有人删除了atl71.DLL(我们Web服务的部署DLL之一)关闭服务器。一旦我们重新添加了这个DLL,我们就不再出现这个错误。事实证明,它与实际的PB Web服务无关。