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/02/21
[ASP.NET Core] 解決如何從 Docker Container 連至本機的 SQL Server
markdown
### 問題
在 Visual Studio 開發 ASP.NET Core 網站以 IIS Express 啟動時可正確連線 SQL Server 的資料庫。
近期改以 Docker 來啟動網站時,出現以下錯誤訊息:
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` 套件
特此記錄一下,供未來翻查用
2024/03/31
[.NET] 如何在 ASP.NET Core 的專案整合 Vite 開發
markdown
### 前言
之前大多使用 Laravel 搭配 Vite 來做前端資源整合開發,由於 Laravel 生態系非常完整,也不太需要多做太多設定即可整合完成。
近期在 ASP.NET Core MVC 的專案使用 Vite 開發前端資源檔案,使用上卻不是那麼上手。尤其是在開發時期載入檔案的部分,在 Laravel 用 @vite 卻可輕易完成,便尋尋覓覓找到相近的整合套件。
2023/02/28
[Visual Studio 2022] v17.5 新功能 - Dev Tunnels 開發人員通道
markdown
開發網站專案,若是要暫時展示開發進度,要想各種方法把網站對外開放。不管是架在測試機,或是佈署到雲端,又或是透過 ngrok 或自架 nginx 伺服器反向代理。目前在 v17.5 版本中可以輕易達到了。
### 必要條件
- Visual Studio 2022 v17.5 版本 (Visual Studio for Mac 不支援)
- 啟用開發人員通道預覽功能
- 僅支援 ASP.NET Core 網站專案 (一個或多個)
2023/02/26
[Visual Studio 2022] v17.5 新功能 - ASP.NET Core 輸出整合內建 Terminal
markdown
### 前言
有在開發 ASP.NET Core 網站的朋友們,在 Visual Studio 上開發時,應該對於那個跳出來不能關掉的 Console 視窗感到很煩。
若是本身就用 VS Code 來開發或是原先就在 Terminal 下操作,是不會有這種困擾的。
一直想敲碗很久的功能,終於在 v17.5 的版本聽見開發者的許願~
現在能把 output 到外跳出來的視窗導到內建的 Terminal 視窗去囉。
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)
2016/05/18
[.NET Core] 在 Mac 上開發 ASP.NET Core (RC2) 網站
距上回發文開發 ASP.NET Core RC1 網站,短短半個多月的時間,又要更新文章啦!
從 ASP.NET Core RC 2 開始,過去在 RC1 以前用的 DNVM, DNU, DNX 都不再適用了 (終於不用記其他指令了),已統一使用 NET Core CLI (指令統一用 dotnet ...超好記)
開發工具再簡化,現在只需要 dotnet 及 yeoman 的指令工具及 Visual Studio Code 編程器
從 ASP.NET Core RC 2 開始,過去在 RC1 以前用的 DNVM, DNU, DNX 都不再適用了 (終於不用記其他指令了),已統一使用 NET Core CLI (指令統一用 dotnet ...超好記)
開發工具再簡化,現在只需要 dotnet 及 yeoman 的指令工具及 Visual Studio Code 編程器
2016/05/10
[.NET Core] ASP.NET Core RC2 不再相容於 DNX
離 ASP.NET Core RC2 發佈的時程愈來愈接近了, 5 月中預計就會發佈, 而 ASP.NET Core 1.0 RTM 在 6 月底也會釋出.
不過, 原本在 RC1 會使用到 DNX 來執行相關作業, RC2 將只相容於 .NET CLI.
GitHub aspnet 的公佈文: ASP.NET Core RC2 is no longer compatible with DNX

好吧~~ 又有一波變更, 等 RC2 出來再更新我的建置文囉!! 好消息是, 在 RC2 之後到 RTM 之間, 已不會有太大結構上的變更, 也就是可以花時間投入好好研究了!!
不過, 原本在 RC1 會使用到 DNX 來執行相關作業, RC2 將只相容於 .NET CLI.
GitHub aspnet 的公佈文: ASP.NET Core RC2 is no longer compatible with DNX

好吧~~ 又有一波變更, 等 RC2 出來再更新我的建置文囉!! 好消息是, 在 RC2 之後到 RTM 之間, 已不會有太大結構上的變更, 也就是可以花時間投入好好研究了!!
2016/05/01
[.NET Core] 如何在 Mac 上開發 ASP.NET Core (RC1) 網站
原本稱 ASP.NET 5,現在已更名為 ASP.NET Core 1.0。(MSDN blog - An Update on ASP.NET Core and .NET Core)

去年 5 月寫了一篇 在 Mac 上使用 Visual Studio Code 執行 ASP.NET 5,是時候再來更新一下了,開發步驟愈發簡單。

去年 5 月寫了一篇 在 Mac 上使用 Visual Studio Code 執行 ASP.NET 5,是時候再來更新一下了,開發步驟愈發簡單。
訂閱:
文章 (Atom)