2017-10-15 59 views
0

我使用「空白」設置創建了一個新的ASP.NET Web應用程序項目。這意味着我沒有得到任何類,並且是一個相當簡單的Web.config文件。我第一次啓動程序時需要更改哪些文件或配置設置才能運行靜態類方法?ASP.NET服務器啓動代碼在哪裏去?

enter image description here

注:我嘗試添加與構造一個Startup.cs類,但沒有工作,我試圖與孩子<add>標籤指定owin appStartup加入<appSettings>標籤,但沒有任何工作。

+0

使用「空白」模板意味着您足夠了解您正在做什麼以無腳手架開始。嘗試使用另一個爲您創建啓動功能的模板。 – NightOwl888

+0

我想知道我在做什麼。我不需要一個模板,因爲我將擁有最多的WebSocket服務器,但是我希望在某人首次訪問websocket端點之前運行一些邏輯。 – AjaxLeung

+0

如果您知道我需要做什麼,我將非常感激。 – AjaxLeung

回答

0

無需學習複雜的IIS配置,一個非常簡單的方法就是使用ASP.NET Core進行自我託管。

首先,安裝.NET核心:https://www.microsoft.com/net/learn/get-started/windows

二,而不是跟隨他們的步驟來創建一個新的控制檯應用程序,請執行以下命令行指令:

  1. 爲您的項目創建一個目錄mkdir MyProject
  2. 輸入到該目錄cd MyProject
  3. 創建一個空白的ASP.NET核心應用dotnet new web
  4. 運行它dotnet run

這將創建並運行一個新的空白ASP.NET Web應用程序,你可以在http://localhost:5000

兩類訪問將已生成:Program.csStartup.csStartup.cs將包含處理請求和服務響應的邏輯,而Program.cs將包含MainBuildWebHost方法。

服務器啓動代碼進入靜態Main方法,允許您在Web服務器甚至初始化之前初始化任何您可能想要的內容。

使用.NET Core的額外好處是,您不僅可以在Windows上運行此操作,而且還可以在所有* nix系統(Linux,MacOSX)上運行此操作。

0

這一切都始於global.asax。 IIS管道編譯global.asax,它通常引用一個從HttpApplication繼承的global.asax.cs。應用程序隨後由管道實例化,並且其事件處理程序在發生管道事件時調用。將所有東西都關閉的東西是該應用程序的構造和Application_Start事件,在該事件中組成對象圖,註冊包和路由等。

當然還有很多其它的東西,但這就是它開始的一切,如果你想嘗試自己重建一個工作網站。

+0

Global.asax Application_Start僅在第一個請求完成後才運行。我希望在服務器啓動後立即運行一些東西,這樣我就可以創建一些共享內存結構,這些結構可以在所有不同的請求之間進行訪問,並且在進行任何請求之前進行初始化。 – AjaxLeung

+1

您可以使用應用程序預熱或啓動提供程序。看到[這個問題](https://stackoverflow.com/questions/28559553/application-start-vs-serviceautostartproviders)。 –

+0

謝謝!這就是我一直在尋找的!雖然看到所有涉及的步驟,但我可能會使用OWIN並避免使用IIS。 – AjaxLeung

相關問題