【发布时间】:2016-02-22 13:23:14
【问题描述】:
我正在编写一个 Windows 服务,它将自托管 OWIN WebApi Web 服务。要启动 Web 服务,位置非常明显;在ServiceBase-extending 类的OnStart 方法中:
private IDisposable _webApiDataConnectionHost;
protected override void OnStart(string[] args) {
_webApiDataConnectionHost = WebApp.Start<OwinWebStartup>("...");
}
但是,我不确定在哪里处理网络应用程序。在this example project 中,他们在OnStop 方法中处理它:
protected override void OnStop()
{
if(_server != null)
{
_server.Dispose();
}
base.OnStop();
}
但是鉴于这是一个IDisposable,在服务的Dispose 方法的覆盖中处理它不是正确的吗?类似于以下内容:
protected override void Dispose(bool disposing) {
if (disposing) {
if (components != null) { components.Dispose(); }
// Dispose of our web app if it exists...
if (_webApiDataConnectionHost != null) {
_webApiDataConnectionHost.Dispose();
}
}
base.Dispose(disposing);
}
哪个是处理网络应用程序的合适位置?
【问题讨论】:
标签: c# .net asp.net-web-api windows-services owin