一个Web应用程序调用了第三方dll,但第三方dll出现某问题时,会弹出一个消息提示框,在Winform程序中是没什么问题,但在Web应用程序中,会直接导致整个进程死锁(因为那个消息提示框虽然看不到,但卡死了进程)
有人遇到过没有?
拉兄弟一把!!!

解决方案 »

  1.   

    Web应用程序只能使用alert()弹出。你的dll应该是在服务器弹出的,不能使用在web程序中。这个道理你必须明白才能去开发Web应用程序
      

  2.   

    我说的是Web应用程序服务器端程序,具体情况是:
    Web应用程序服务器端调用一个打印机的第三方dll,但那个dll找不到打印机时,会Show一个MessageBox(非C#程序),在Winform程序中调用这个dll没有问题,弹出一个MessageBox,关掉就是,但在Web应用程序服务器端弹出这东东,乐子就大了。我根本不希望它弹这东东,可是那个dll是打印机提供的,实际上在Web应用程序服务器上也无法看到这个消息提示框。
      

  3.   

    那个dll找不到打印机时,会Show一个MessageBox
    这是程序开发的时候就定了的,你先咨询下那个dll的开发商,是否提供服务器版本的dll。一般服务器上也不会安装打印机的,服务器安装打印机,具体是否成功打印了客户端都无法知道,另外,web程序运行的身份一般是匿名帐号,权限是很小的,有些操作是没有权限的。
    你可以在应用程序池里面,设置标识为系统管理员帐号运行试试
      

  4.   

    调用权限没有问题的,只是打印机是开放给用户自由设置的,如果他们设置了一个他们自己连接不上的打印机,就会触发这个弹出框,然后就锁死整个服务器进程……
    程序兼容多种打印机,只有这种打印机的dll有这怪病,只要提用用户,这种打印机设置需谨慎,使用请注意……解决方案有一个,但不想用:另开线程访问打印机。 这样会造成无法返回打印机是否连接成功,打印任务是否成功,另外需要把这个线程挂到应用程序的主序列中去,最后,还得祈祷那个消息弹出框没那么NB,不会锁死主线程。非常感谢兄弟的帮助,结贴吧。