asp.net引用运行线程的DLL

时间:2016-03-21 15:00:47

标签: asp.net multithreading visual-studio iis dll

我是ASP.NET的新手,我需要开发一个与RFID阅读器通信的应用程序。

为了做到这一点,我有一个DLL项目,它运行一个管理与阅读器通信的线程,而我有另一个管理用户界面的ASP.NET项目。

这两个项目存在于同一个解决方案中,因此ASP.NET项目引用了DLL项目。

在应用程序开始时,我的“Global.asax”文件初始化读取器(DLL项目),运行其内部的线程,并在读卡器内部注册时,注册DLL触发的一些事件,如“CardInside”。

我怀疑的是,这个线程是否真的在运行,因为它没有做任何事情。我已经放置了多个断点以查看该部件是否正在运行,但没有任何停止。

我已经阅读了关于线程和asp.net的问题,但由于这个线程没有在http请求中使用:
- 在网页的同时在ISS服务器上运行线程有什么问题吗?

- aspx.cs文件是否正常注册由另一个对象触发的事件?好像它不是Web应用程序?

- 我正在使用visual studio 2015,我可以使用DEBUG对象在我的DLL代码行中显示消息吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

是的,在IIS内部运行不是请求的线程存在问题。当没有请求进入IIS时,将拆除AppDomain,并Thread.Abort()运行您的后台工作的线程将工作。

如果希望代码一直运行,则需要将代码移出IIS并将其更改为实际的Windows服务。然后,您可以将IIS部分与Windows服务进行通信(反之亦然)以处理Web组件的任何内容。