2022/12/27

[VS2022] 如何更新 IIS Express 開發憑證

前言

繼上回更新 ASP.NET Core 的開發憑證,恰巧 IIS Express 的本機開發憑證也到期了。今天就來解決如何更新 IIS Express 的開發憑證。

問題

今天在 Visual Studio 2022 執行 ASP.NET MVC 的網站時,出現 "根據驗證程序,遠端憑證是無效的。" 的錯誤訊息。檢查後發現原先本機的開發憑證已經到期了。

API 呼叫遠端憑證無效這件事,程式端也是有對應的解決方式,但是在不改程式的狀況下,啟用 https 網站的開發模式一定還是會遇到,先治本吧!

2022/12/18

[.NET] 更新信任 ASP.NET Core 開發憑證

前言

每年都要更新 ASP.NET Core 本機端自簽的開發憑證,剛好就在不久前憑證過期。透過剛結束的 .NET Conf Taiwan 2022 從保哥那裡學到一招更新方法。立即現學現賣。

過期的憑證

寫部落格的同時恰巧經歷了正常到過期的憑證變化。

$ dotnet dev-certs https --check --trust

原本的 A valid certificate was found 變成 The following certificates were found, but none of them is trsuted.


> 我的開發環境: Windows 10,若是其他的平台可以查詢 Microsoft Learn - 使用 .NET CLI 產生自我簽署憑證

更新步驟

  1. 先清掉舊的憑竳
$ dotnet dev-certs https --clean
  1. 再重新建立新憑證
$ dotnet dev-certs https --trust

見證更新過程

正常 -> 過期 -> 清除 -> 重建 -> 正常


相關資料

2022/12/11

[C#] 如何修正錯誤 CS1738 "named argument specifications must appear after all fixed arguments have been specified" 問題

問題

最近遇到客戶拿到原始碼在編譯過程出現 "CS1738 named argument specifications must appear after all fixed arguments have been specified" 錯誤

中文錯誤訊息 "CS1738 必須在所在固定引數皆已指定之後,具名引數規格才可出現。請使用語言版本 7.2 或更高的版本,以允許非後置的具名引數。"

  • 開發環境: 使用 VS2022
  • 客戶環境: 使用 VS2017

相同的程式,在 VS2022 下編譯沒有問題,而在 VS2017 卻遇到無法正確編譯。

程式大致如下:

context.MapRoute(
  name: "MyRouteName",
  url: "MyArea/News/{type}",
  new { controller = "News", action = "TypeList" }
);

解決方法

  1. 依照參數位置給予對應值, 不加任何具名引數 (把具名引數 name:url: 都拿掉)
  2. 把所有具名引數都加上去, 即第三個參數前須加上具名引數 defaults:
  3. 更新 Visual Studio 到新版本 (需支援 C# 7.2 以上的版本)

相關連結