我有以下OWIN实现来在CI上运行我的功能测试
protected const string Url = "http://localhost:8785";
private static IDisposable _app;
Establish context = () => _app = WebApp.Start(Url, a =>
{
a.Use(typeof(MockIdentityMiddleware));
new Startup().Configuration(a);
});
Cleanup after = () => _app.Dispose();
但是当它运行时,我得到以下堆栈跟踪:
System.Net.HttpListenerException:无法侦听前缀 'http://localhost:8785/'因为它与现有的冲突 在机器上注册。
我想以编程方式删除该端口的注册,因此我不必再担心但不确定如何使用Owin。
答案 0 :(得分:1)
您不应该在测试中硬编码端口号,因为您永远无法确定端口是否空闲。
有一个非常简单的代码,允许在给定的机器上找到下一个空闲的TCP端口https://stackoverflow.com/a/150974/295582