我有一个名为MyWebApi项目的WebApi,它在调试模式下在端口42000上运行。 我使用以下技术使用Owin创建了一个控制台应用程序来托管MyWebApi:
static void Main(string[] args)
{
using (WebApp.Start<WebApi.Startup>("http://localhost:9000/"))
{
Console.WriteLine("Server is running...");
Console.WriteLine("Press Enter key to stop it.");
Console.ReadKey();
}
Console.WriteLine("Server is shutting down...");
}
一切正常。我可以从端口9000和42000获取和发布数据。 在我停止我的控制台后,我仍然可以从端口42000发布并获取数据。 有没有办法阻止MyWebApi,就像我们直接从WepApi项目停止调试一样?
感谢,
奥斯汀
答案 0 :(得分:1)
尝试处理您的webApp:
using (var _webApp=WebApp.Start<WebApi.Startup>("http://localhost:9000/"))
{
Console.WriteLine("Server is running...");
Console.WriteLine("Press Enter key to stop it.");
Console.ReadKey();
_webApp.Dispose();// Add this
}
Console.WriteLine("Server is shutting down...");
答案 1 :(得分:0)
public class Startup
{
private static readonly IUnityContainer _container = UnityHelpers.GetConfiguredContainer();
public static void StartServer()
{
string baseAddress = "http://localhost:8081/";
var startup = _container.Resolve<Startup>();
IDisposable webApplication = WebApp.Start(baseAddress, startup.Configuration);
try
{
Console.WriteLine("Started...");
Console.ReadKey();
}
finally
{
webApplication.Dispose();
}
}
}
SELF HOST WEBAPI WITH OWIN AND UNITY
webApplication.Dispose(); - 停止webapi服务器