我有一个带有OWIN启动类的WebApi。
我想在Configuration方法中调用一个方法(为了注册web api),我需要服务的地址(比如localhost:12345
)。
我怎么能得到它?
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
...
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
RegisterService(serviceAddress); // <- here
...
}
}
答案 0 :(得分:1)
我做了类似的事情:
public class WebServer : IDisposable
{
private static IDisposable WebApplication = null;
private static WebServer _Instance = null;
public static GetInstance()
{
//other tests before here
if(_Instance == null)
{
WebApplication = Microsoft.Owin.Hosting.WebApp.Start<WebServer>("localhost:12345");
_Instance = new WebServer();
_Instance._HostAddress = hostAddress;
}
}
public void Configuration(IAppBuilder app)
{
HubConfiguration config = new HubConfiguration();
config.EnableJSONP = true;
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(config);
// other config
}
public void Dispose()
{
if (WebApplication != null)
WebApplication.Dispose();
WebApplication = null;
_Instance = null;
}
}
WebServer webserver = WebServer.GetInstance();
//later
webserver.Dispose();
Mine与此有点不同,因为我使用多个端口,进行一些SSL检查并传入端口和IP,但这是它的要点。