2017-01-25 102 views
0

我有一個簡單的WebApi2應用程序來處理各種REST請求。它本質上是SQL Server數據庫上各種CRUD操作的前端。直到現在,我從來沒有從Visual Studio以外的地方運行過它,但我通常不會執行Windows特定的東西,但是我在這裏。從Windows應用程序啓動WebApi應用程序

我的目標是將此webapp的功能構建到Windows桌面應用程序中(或者至少能夠從Windows程序控制web應用程序),大多數情況下用戶可以啓動Web應用程序,停止它,查看誰連接到它等,但我不知道如何去連接這組特殊的點。谷歌其實是一件非常艱難的事情。如果答案涉及到執行各種系統命令行來告訴WebApp啓動/停止/等,我可以通過我所做的任何事情需要在命令行上以某種方式,這很好)。

最終目的是爲用戶提供一個安裝程序,他不必知道有一個web服務器,除非他真的想要。

那麼我該如何去完成這部分? (如果這個問題太含糊,告訴我爲什麼,我會根據需要修改它)。

回答

0

有關Web API的好處之一就是可以在Web服務器(如IIS)之外託管。例如,您可以將其託管在Windows窗體應用程序中。以下是關於如何實現此目的的article with detailed instructions

你將有一個Startup類,將用於引導:

public class Startup 
{ 
    // This code configures Web API. The Startup class is specified as a type 
    // parameter in the WebApp.Start method. 
    public void Configuration(IAppBuilder appBuilder) 
    { 
     // Configure Web API for self-host. 
     HttpConfiguration config = new HttpConfiguration(); 
     config.Routes.MapHttpRoute( 
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     appBuilder.UseWebApi(config); 
    } 
} 

,然後它只是一個開始聽者的事情:

using (WebApp.Start<Startup>("http://localhost:8080")) 
{ 
    Console.WriteLine("Web Server is running."); 
    Console.WriteLine("Press any key to quit."); 
    Console.ReadLine(); 
} 

這將提供您的Web API上本地端口8080,您的應用程序可以向其發送HTTP請求。

所以基本上你要找的關鍵字是:self hosting asp.net web api

相關問題