我想在我的 WCF 服务启动后立即执行一些操作。怎么做到的?
事实上,我应该每 10 分钟更新一次服务的一些变量。所以我把我的更新代码放在一个线程中。但是我不知道服务启动时如何启动这个线程(WCF 服务中有类似 Form_Load 事件的东西吗?)
最佳答案
通常没有 WCF 服务的任何部分“只是徘徊”在内存中准备做某事……WCF 不是 ASP.NET!
在 IIS 中托管时的默认设置是这样的:
IIS 在特定端口/URL 上监听请求 - 内存中的任何位置都没有您的 WCF 服务的任何痕迹
当收到第一个请求时,IIS 将启动一个
ServiceHost
- 一个可以“托管”服务的类然后该服务主机将查看请求是否传入,并根据目标 URL 决定实例化哪个服务类来处理该请求。然后创建服务类(您的服务实现)并调用和执行该服务类上的适当方法,一旦完成,服务类就会被释放
所以基本上,有两点你可以 Hook :
您可以创建自己的自定义
ServiceHost
类,它会在实例化时执行某些操作您可以在每个服务类方法中添加一些“初始化”代码来处理您的需求
关于c# - 在我的 WCF 服务启动时执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7249330/