在ASP.NET中使用第三方COM dll
问题描述:
我有一个使用COM DLL的ASP.NET项目。当我加载网站时,我登录没有问题,只要我不去使用COM库的页面,我就可以浏览网站。在ASP.NET中使用第三方COM dll
当我转到使用COM库从数据库获取数据的页面时,页面加载正常。当我离开这个页面时,问题就出现了。出于某种原因,我被送回到登录页面,就像初始会话被删除一样。
如果我拿走显示库检索数据的页面上的组件,我可以离开页面,所以肯定是库的调用会导致会话中断。
有没有人有任何想法,为什么会发生?
答
修正了它。这是一个愚蠢的问题。该库在每次做某事时都会在bin目录中创建一个日志文件。每当bin目录中的文件发生更改时,会话就会被丢弃,因为AppDomain被破坏并重新启动。
答
我不知道COM组件是否崩溃并将应用程序池断开(或者现在在ASP.NET中调用的任何东西)。
您是否可以留意ASP.NET工作进程(它曾经被称为aspnetwp.exe),并查看当您使用COM调用导航到页面时它是否消失?
如果是这样,那么COM组件可能会抛出一个结构化异常,这会终止进程,导致会话状态丢失,如果将它存储在服务器上的进程中。
您可能能够从事件查看器(开始 - >运行 - > eventvwr)收集更多信息,其中ASP.NET记录任何崩溃。