手动配置 OWIN WebApp
Manually dispose OWIN WebApp
我正在尝试使用 OWIN 自托管网站 API,而 运行 我的测试我想在 BeforeEach
开始并在 AfterEach
停止方法。
我发现的所有示例都建议使用 using
关键字,例如
using (WebApp.Start<Startup>(url: baseAddress))
{
...
}
但对我来说没有帮助。
我试过这样做:
private IDisposable _webApp;
public override void BeforeEach()
{
_webApp = WebApp.Start<OwinStartup>("http://localhost:99999/");
}
public override void AfterEach()
{
base.AfterEach();
if (_webApp != null)
_webApp.Dispose();
}
但由于某种原因,它调用 UnityResolver
class 的 Dispose
方法,然后我得到 Whosebug...
异常。
如何正确配置OWIN主机?
正如@drax 已经在评论中指出的那样——我的处理实现是正确的。
问题出在我在 UnityResolver class 中的内部实现,它是在 OwinStartup
class 中启动的。
然而,我遇到了一些与 Owin 的 OAuth 授权服务器相关的其他限制,所以我决定不要让我的代码过于复杂并放弃 Owin 的东西。至少现在是这样。
我正在尝试使用 OWIN 自托管网站 API,而 运行 我的测试我想在 BeforeEach
开始并在 AfterEach
停止方法。
我发现的所有示例都建议使用 using
关键字,例如
using (WebApp.Start<Startup>(url: baseAddress))
{
...
}
但对我来说没有帮助。
我试过这样做:
private IDisposable _webApp;
public override void BeforeEach()
{
_webApp = WebApp.Start<OwinStartup>("http://localhost:99999/");
}
public override void AfterEach()
{
base.AfterEach();
if (_webApp != null)
_webApp.Dispose();
}
但由于某种原因,它调用 UnityResolver
class 的 Dispose
方法,然后我得到 Whosebug...
异常。
如何正确配置OWIN主机?
正如@drax 已经在评论中指出的那样——我的处理实现是正确的。
问题出在我在 UnityResolver class 中的内部实现,它是在 OwinStartup
class 中启动的。
然而,我遇到了一些与 Owin 的 OAuth 授权服务器相关的其他限制,所以我决定不要让我的代码过于复杂并放弃 Owin 的东西。至少现在是这样。