跳到主要內容

Asp.Net Core Web 專案發佈到 IIS

 首先建立一個新的專案, 選擇 Asp.Net Core Web 應用程式, 按下一步


接著我都不改, 直接用預設值, 按建立


接著我選Asp.Net Core 5.0 以及 MVC 範本(方便測試看結果), 如下紅色框框, 按建立


專案建好後, 展開[建置]的菜單, 點選 [發佈 XXXXXX]


之後點選發佈到 [網頁伺服器IIS], 按下一步


再來直接用 [Web Deploy] 方式來發佈網站, 按下一步


接著輸入如下圖紅色框框部分


"localhost" 代表本機, "Default Web Site"(字字之間有空格)則是 IIS 的預設網站名稱(必須一樣, 如下圖紅色框框), 接著按完成

完成之後先別急著按發佈, 先按[編輯]進去, 裡面有連線測試, 如下圖紅色框框



進去編輯畫面按下[驗證連線]按鈕, 如下圖紅色框框



之後按鈕右邊會出現訊息"提高權限執行msdeploy", 點擊這字會告訴我們要用"系統管理員模式下啟動Visual Studio"





接著儲存專案後, 將 Visual Studio 關閉, 在 Visual Studio 2019 上按下右鍵, 點選[更多], 再點選[以系統管理員身分執行]


會出現警告視窗, 問"是否允許App變更您的裝置", 按下[是]
接著開啟剛剛的專案, 於菜單中選[建置], 再選[發佈], 開啟發佈視窗後再選[編輯], 再按一次[驗證連線]按鈕, 按鈕右邊就會出現綠色勾勾, 表示連線成功, 按下[取消]或是[儲存]關閉編輯的畫面



接著按下[發佈]的按鈕



Visual Studio 發佈完成後, 會自動開啟 IIS 上的網頁, 因為網頁的網址變成 localhost 了, 但是出現錯誤的畫面, 如下圖


去 Google 搜尋 "asp.net core IIS" 可以查到微軟的一篇文章 在使用 IIS 的 Windows 上裝載 ASP.NET Core 裡面有教很多東西, 其中有提到要在IIS上使用  Asp.Net Core 就要去一個連結 目前的 .NET Core 裝載套件組合安裝程式 (直接下載) 下載安裝 ASP.NET Core Hosting Bundle, 




下載 dotnet-hosting-5.0.1-win.exe 完成後(我這時的最新版本是5.01), 執行安裝這個程式
安裝完成後, 重新整理剛剛出現錯誤的網頁, 就會變成正確的畫面了


執行環境 : Windows 10 家用版 20H2, 19042.685
工具 : Visual Studio 2019 16.8.3
.Net 版本 : 5.01
IIS : Windows 10 內建 IIS

留言

這個網誌中的熱門文章

Excel C# (一) : 增益集 (Add-Ins) 之自訂函數

Excel的自訂函數除了之前介紹的VBA方式外, 還可以用 JavaScript, C# 等, 我就來試試看用C#來開發 我爬文找到了這篇 Excel-DNA 裡有詳細的教學, 不過我還是自己照做一遍看看是否成功 ! 第一步先開啟 Visual Studio 2019, 專案選擇 "類別庫(.NET Framework)" 過來將專案名稱輸入 MyExcelAddIns, 其他不變按下 "建立" 第二步接著在 "工具"->"NuGet 套件管理員"->"管理方案的 NuGet 套件", 將 Excel-DNA 套件加入至專案中 第三步將專案中的 Class1.cs 檔案刪除, 自己新增一個類別 "MyFunctions", 然後我複製 https://excel-dna.net 該網站上的範例, 貼進來方便測試 第四步我則是將方案組態由 "Debug" 改成 "Release"(如上圖的紅框), 再按 "建置" 下的 "重建方案" 產生 Excel XLL 檔案, 再去方案總管的 MyExcelAddIns 上按右鍵, 選擇 "在檔案總管中開啟資料夾" 會看到下面第二張圖 過來我的習慣是將這個 Release 目錄整個複製, 貼到桌面方便測試 ! 第五步則是開啟空白的Excel, 按 "程式開發人員" 下的 "Excel增益集", 點擊瀏覽後, 選擇桌面上我剛剛的 Release 資料夾, 如果Excel是32位元則選 MyExcelAddIns-AddIn.xll 檔案, 如果是64位元版本則選擇 MyExcelAddIns-AddIn64.xll 檔案, 接著在 Excel 任一儲存格輸入 =SayHello("World!"), 結果出現 Hello World!, 表示一切都正確, 接著我可以開始建立自己的函數了! 最後我個人認為自訂函數的VBA與C#兩種方式, 其優缺點如下:VBA的優點...

Asp.Net Core Debug Source Code

寫過Asp.Net Core Web MVC應該知道裡面要使用很多的Middleware,如果要知道裡面的運作方式,就要看Source Code,或者想知道自己寫的程式哪裡出問題,有時候就必須Debug進Source Code中看變數的變化 如何Debug Source Code我是參考 DEBUGGING ASP.NET CORE 2.0 SOURCE CODE 這篇文章來設定的,作法如下: 1.點選[工具]的[選項]  2.展開[偵錯]的[一般],並將[啟用Just My Code]的選取方塊 取消 ,以及[啟用來源連接支援]的選取方塊 點選起來   3.接著點選[偵錯]的[符號],並將[Microsoft伺服器]的選取方塊 點選起來  (點選之後會出現提示視窗,因為載入這些符號,會導致一些效能上的影響,尤其是首次載入,讓我以為Visual Studio當機了...) 這樣就可以Debug Source Code了,接著開始測試看看 : 1.先開啟一個新的專案(我選擇Asp.Net Core Web 應用程式) 2.因為只是測試所以都用預設的, 一直按確定就好, 除了Asp.Net Core 3.1改成5.0(操作方式都一樣沒差, 我只選5.0只是為了節省下載符號的時間以及空間而已,如果我選3.1它會下載這個版本的符號一次, 下次我選5.0它又會下載這個版本的符號一次) 3.專案自動建好後, 於視窗右邊的 HomeController.cs 按兩下, 視窗左邊就會看到檔案的內容, 接著找到 Index 的 rertrn View(), 在這列的前面點一下即可設定中斷點, 就像下圖的左邊紅色圈圈一樣(因為要顧到初學者所以才會說的這麼仔細) 4.設定好中斷點(紅色圈圈)之後, 過來就按下 [ IIS Express ] 的執行(上圖中中間上面的黃色圈起來的地方), 或者按下 F5, 就會開始執行程式 5.如果是第一次執行, 可能會出現一個確認視窗, 要你確認是否IIS Express的SSL憑證?按下是即可, 下面一個視窗也請按是 6.接著畫面會停止不動像當機一樣, 不是當機只是第一次抓符號要很久, 只要耐心等候直到 return View() 由紅底變成黃底就跑完了, 黃色底的列代表程式目前執行到這,...

Asp.Net Core Web 多國語系(一)

微軟內建的多國語系目前分為三種 : 第一種是寫在Controller中的(通常用在商業邏輯判斷之錯誤顯示) 第二種是寫在View中的(通常用於畫面功能顯示以及UI顯示用) 第三種是寫在Data Model的Attribute中, 然後自動顯示在View中(通常用於與資料庫相關之資訊顯示, 如欄位名稱, 資料輸入之格式錯誤訊息) 我先來嘗試寫第一種 - Controller : 首先我先建立一個 Asp.Net Core 的 MVC 專案 NetCore ( 程式碼下載 , 如果想從無到有自己動手一步一步做, 可以參考微軟官網範例 MvcMovie , 我的專案就是從這小改來的, 只是將資料庫從LocalDB小改成InMemoryDB而已) 第二步打開Startup.cs, 並在下圖位置新增程式碼 services.AddLocalization(options => options.ResourcesPath = "Resources"); 第三步新增Resources資料夾, 並新增兩個資源檔案 "Controllers.MoviesController.resx" 和 "Controllers.MoviesController.en-US.resx" 如下圖 : Controllers.MoviesController.resx檔案的內容如下(檔案名稱沒包含語系表示是預設語系): Controllers.MoviesController.en-US.resx檔案的內容如下(en-US表示英語系): 以上表示系統是英語語系,  "Hello" 會轉換成 "Hello(en-US,Movies)" 來顯示, 正常應該是轉換成  "Hello" 就好, 我多顯示其他文字只是用來知道這個 "Hello" 是由哪個語系檔案轉換來的而已 非英語系的 "Hello" 則會轉換成 "Hello(Default,Movies)" 來顯示, 表示是從預設檔案而來 以上第二以及第三兩個步驟是多國語系的共通步驟, 過來才是 Controller 的部分 第四步驟則是打開 MoviesControlle...