2022/12/27
[VS2022] 如何更新 IIS Express 開發憑證
markdown
### 前言
繼上回更新 ASP.NET Core 的開發憑證,恰巧 IIS Express 的本機開發憑證也到期了。今天就來解決如何更新 IIS Express 的開發憑證。
### 問題
今天在 Visual Studio 2022 執行 ASP.NET MVC 的網站時,出現 "根據驗證程序,遠端憑證是無效的。" 的錯誤訊息。檢查後發現原先本機的開發憑證已經到期了。
API 呼叫遠端憑證無效這件事,程式端也是有對應的解決方式,但是在不改程式的狀況下,啟用 https 網站的開發模式一定還是會遇到,先治本吧!
2022/12/18
[.NET] 更新信任 ASP.NET Core 開發憑證
markdown
### 前言
每年都要更新 ASP.NET Core 本機端自簽的開發憑證,剛好就在不久前憑證過期。透過剛結束的 [.NET Conf Taiwan 2022](https://dotnetconf.study4.tw/) 從保哥那裡學到一招更新方法。立即現學現賣。
### 過期的憑證
寫部落格的同時恰巧經歷了正常到過期的憑證變化。
```
$ 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 產生自我簽署憑證](https://learn.microsoft.com/zh-tw/dotnet/core/additional-tools/self-signed-certificates-guide?WT.mc_id=DT-MVP-5002629) ### 更新步驟 1. 先清掉舊的憑竳 ``` $ dotnet dev-certs https --clean ``` 2. 再重新建立新憑證 ``` $ dotnet dev-certs https --trust ``` ### 見證更新過程 正常 -> 過期 -> 清除 -> 重建 -> 正常
### 相關資料 - [使用 .NET CLI 產生自我簽署憑證](https://learn.microsoft.com/zh-tw/dotnet/core/additional-tools/self-signed-certificates-guide?WT.mc_id=DT-MVP-5002629)
> 我的開發環境: Windows 10,若是其他的平台可以查詢 [Microsoft Learn - 使用 .NET CLI 產生自我簽署憑證](https://learn.microsoft.com/zh-tw/dotnet/core/additional-tools/self-signed-certificates-guide?WT.mc_id=DT-MVP-5002629) ### 更新步驟 1. 先清掉舊的憑竳 ``` $ dotnet dev-certs https --clean ``` 2. 再重新建立新憑證 ``` $ dotnet dev-certs https --trust ``` ### 見證更新過程 正常 -> 過期 -> 清除 -> 重建 -> 正常
### 相關資料 - [使用 .NET CLI 產生自我簽署憑證](https://learn.microsoft.com/zh-tw/dotnet/core/additional-tools/self-signed-certificates-guide?WT.mc_id=DT-MVP-5002629)
2022/12/11
[C#] 如何修正錯誤 CS1738 "named argument specifications must appear after all fixed arguments have been specified" 問題
markdown
### 問題
最近遇到客戶拿到原始碼在編譯過程出現 "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 以上的版本)
### 相關連結
- [Named and Optional Arguments (C# Programming Guide)](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments?WT.mc_id=DT-MVP-5002629)
- [How to fix Error CS1738 Named argument specifications must appear after all fixed arguments have been specified](https://stackoverflow.com/questions/57062106/how-to-fix-error-cs1738-named-argument-specifications-must-appear-after-all-fixe)