{oc.tech.notes} 技術誌
技術誌記錄學習或專案執行當下遇到的問題及解決方案,方便日後翻查,益人益己!
2025/07/09
[Windows] 系統更新後,無法正常使用倉頡輸入法
markdown
今日 Windows 11 系統更新 (KB5062553)
發生無法正常使用倉頡輸入法
解法:
1. 移掉更新版本 KB5062553
2. 變更輸入法相容性,開啟 使用舊版的微軟倉頡
因為是在更新系統後才發生的,重開機後立刻遇到無法打字,直覺就是更新造成的問題。
結果我不孤單,上網查了一下,還是有蠻多人跟我遇到同樣症狀,我採用解法 2,改相容性後就正常了
### 設定路徑
設定路徑太複雜,無法一步到位,以下是詳細的設定路徑:
1. 設定 / 時間與語言 / 語言與地區 (或是在工具列右下角的 "倉" 點開選單,選擇 "更多鍵盤設定")
2. 選擇 "繁體中文(台灣)" (點右方 ... 開啟其他選項,選擇 "語言選項")
3. 選擇 "微軟倉頡" (點右方 ... 開啟其他選項,選擇 "鍵盤選項")
4. 移到最下方 "相容性" / 使用舊版的微軟倉頡 點選 "開啟" 即可
2025/04/06
[EF Core] 解決 Decimal 類型出現 No store type was specified for the decimal property 警告訊息
markdown
### 版本
- .NET 8
- EF Core 9
### 問題
在 EF Core 使用 decimal 類型的屬性時,一直跳出
No store type was specified for the decimal property
的警告訊息
### 解決方法
在屬性上方加上 [Precision(18, 2)]
```cs
[Precision(18, 2)]
public decimal Price { get; set; }
```
> 需要 .NET EF Core 6 以上的版本才支援
### 參考
- MS Learn - PrecisionAttribute Class
- Decimal precision and scale in EF Code First
2025/02/21
[ASP.NET Core] 解決如何從 Docker Container 連至本機的 SQL Server
markdown
### 問題
在 Visual Studio 開發 ASP.NET Core 網站以 IIS Express 啟動時可正確連線 SQL Server 的資料庫。
近期改以 Docker 來啟動網站時,出現以下錯誤訊息:
SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)
2025/01/30
[AI] 如何在本地機器使用 DeepSeek-R1 模型
markdown
### 前言
AI 話題這幾年一直話題不斷,而前一陣子 DeepSeek 的聲量突然上升了不少,好像不研究一下不行。
今天就花了些時間,研究如何在本地執行 DeepSeek-R1 模型。
### 安裝步驟
1. 安裝 Ollama
2. 使用 DeepSeek-R1 模型
3. 執行 Open-WebUI
2025/01/26
[ASP.NET Core] 如何在 ASP.NET Core 專案中的 Dockerfile 設定預設時區
markdown
### 問題
在開發 ASP.NET Core 專案時,Docker Image 預設的時區是 UTC,可以把時區預設定在 Asia/Taipei 嗎?
### 環境
- Windows 11
- Visual Studio 2022 (v17.12.4)
- ASP.NET Core (.NET 8)
### 解決方法
在 Dockerfile 的 base 上加一段 `ENV TZ=Asia/Taipei`
(有試過加在 final 上,但是在 Visual Studio 開發時並不會正確載入,發佈到 Azure Web App for Containers 確認是有正確載入時區的)
而且 Image 要選 `dotnet/aspnet:8.0` 不要選 `dotnet/aspnet:8.0-jammy-chiseled` (不能因為佔空間才選它,它是不包含 tzdata 套件的)
```
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
ENV TZ=Asia/Taipei # 加 TZ 這一個變數
EXPOSE 8080
EXPOSE 8081
...
```
若是不想要變更 Dockerfile 的設定,在 Visual Studio 開發,可以修改 `launchSettings.json` 檔案
在 Dockerfile 的 environmentVariables 加上 `TZ` 的參數
執行 docker run 的命令會帶入 TZ 的環境變數值
2025/01/24
[Azure] ASP.NET Core 專案部署到 Web App for Containers 問題除錯心得
markdown
### 前言
因為新專案要求要用 Docker,本地開發端的問題通常不大,開專案也都有 Template,往往都是實際要部署上線時會遇到一些狀況。
趁著記憶猶新,整理一下部署心得
### 開發環境
- Windows 11
- Docker Desktop v4.37.1
- Visual Studio 2022 (v17.11.x -- 原版本忘了,因部署 Bug 問題,後來升級到 v17.12.4)
- ASP.NET Core Web App (Model-View-Controller) 專案
- .NET 8.0
### 選擇部署到 Azure 的服務
將專案部署到 Azure 上,我選擇的服務如下:
- Azure Container Registry (ACR)
- Azure App Service (Web App for Containers)
- Azure SQL Database
- Azure Storage
2025/01/23
[ASP.NET Core] 解決 ASP.NET Core 在 Linux Container 出現無法載入 libSkiaSharp 相依性問題
markdown
### 前言
一直以來開發的 ASP.NET Core 專案都是在 Windows 環境執行。最近才開始接觸開發 ASP.NET Core 專案執行於 Docker Container 的開發環境,馬上就遇到處理圖片的問題。
在 Windows 的環境下處理圖片會用到 `System.Drawing.Common`,但在 Linux 環境下是不支援的。所以在 Linux 下的圖片處理改採用 `SkiaSharp` 的套件。
SkiaSharp 這個套件在 Windows 及 Linux 都可以用,在 Windows 的開發環境已有測試套過可以正常運作,沒想到在 Linux 環境下還是噴錯了。
### 環境
- Docker Container (預設 ASP.NET Core 專案用的 base 我改用 `aspnet:8.0-jammy-chiseled` 可減少 image size)
- .NET 8.0
- NuGet 安裝套件: SkiaSharp 版本 3.116.1
### 問題
而在使用 SkiaSharp 處理圖片的過程中出現以下錯誤訊息:
```
An unhandled exception occurred while processing the request.
DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.
```
### 解決方式
需要再安裝 `SkiaSharp.NativeAssets.Linux.NoDependencies` 套件
特此記錄一下,供未來翻查用
訂閱:
文章 (Atom)