簡體   English   中英

如何在 IIS 上托管我的 ASP.NET 核心站點(在開發環境中,無需部署/發布)

[英]How to host my ASP.NET core site on IIS (in development environment, without deploy / publish)

在我的開發環境中,我曾經在 IIS 上本地托管我的 ASP.NET 站點(非核心)。
這樣做幫助我避免使用 IIS Express(每次啟動和停止 IIS Express 都非常不舒服)。
這樣,我所要做的就是重建和刷新站點。
我的目標是以同樣的方式使用 ASP.NET 內核。
我讀到這個: https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetcore2x ,它沒有 go 很好。
我正在尋找的是在每次 C# 代碼更改(需要構建)后無需部署/發布即可。
我使用 ASP.NET 核心 2 & IIS 10

如果需要調試應用程序,可以將ASP.NET Core應用程序配置為默認的IIS啟動。

參考: https//docs.microsoft.com/aspnet/core/host-and-deploy/iis/development-time-iis-support#configure-the-project

創建新的啟動配置文件以添加開發時IIS支持。 在Visual Studio的解決方案資源管理器中 ,右鍵單擊該項目,然后選擇“ 屬性” 選擇“ 調試”選項卡。 從“ 啟動”下拉列表中選擇“ IIS ”。 確認使用正確的URL啟用了啟動瀏覽器功能。

要么

或者,手動將啟動配置文件添加到應用程序中的launchSettings.json文件:

{
"iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iis": {
        "applicationUrl": "http://localhost/WebApplication2",
        "sslPort": 0
    }
},
"profiles": {
    "IIS": {
        "commandName": "IIS",
        "launchBrowser": "true",
        "launchUrl": "http://localhost/WebApplication2",
        "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
        }
    }
}

您可以利用ASPNETCore模塊的app_offline.htm功能,並將其合並到您的構建過程中。

但您需要發布您的站點並從該文件夾而不是項目文件夾運行IIS站點/虛擬應用程序。

在下面的示例中,我們將站點發布到相對於sln位置的文件夾“published-site”,但僅用於Debug構建。

我還假設構建過程花費的時間比關閉過程所花費的時間要長。

  1. 創建PreBuild目標,在publish文件夾中創建app_offline.htm文件。

     <Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(Configuration)'=='Debug'"> <Exec Command="IF EXIST &quot;$(SolutionDir)published-site&quot; (&#xD;&#xA; echo. 2&gt;&quot;$(SolutionDir)published-site\\app_offline.htm&quot;&#xD;&#xA;)" /> </Target> 
  2. 創建一個PostBuild目標,刪除app_offline.htm文件,然后調用dotnet publish。

     <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(Configuration)'=='Debug'"> <Exec Command="IF EXIST &quot;$(SolutionDir)published-site\\app_offline.htm&quot; (&#xD;&#xA; del &quot;$(SolutionDir)published-site\\app_offline.htm&quot;&#xD;&#xA;)&#xD;&#xA;&#xD;&#xA;dotnet publish --no-build --no-restore &quot;$(ProjectPath)&quot; -c $(ConfigurationName) -o &quot;$(SolutionDir)published-site&quot;" /> </Target> 

沒有部署/發布,就不可能。 但您可以考慮使用自動部署作為解決方法。 例如,您可以使用Auto Deploy等擴展,或者擴展MSBuild進程

您需要安裝 ASP.NET 核心模塊/托管捆綁包,並確認進程 model 身份具有適當的權限,更多信息Z5E056C500A1C4B6A7110B50D807BADEus5Z://docs/tutorials.com/en-lishus5Z/docs/tutorials.com/en-lishus5Z視圖=aspnetcore-6.0&tabs=visual-studio

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM