首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 阿里雲 OSS 分片上傳「連線重置」排查指南

     編輯:程式設計綜合問答

錯誤現象

ASP.NET WebForm 上傳檔案至阿里雲 OSS,點擊上傳按鈕後瀏覽器顯示「連線已重置」(ERR_CONNECTION_RESET)。

常見原因

  1. AccessKey/Secret 錯誤或為空:程式碼中 _accessId、_accessKey 為空字串,導致簽名驗證失敗,OSS 直接切斷連線。
  2. Endpoint 不正確:需與 Bucket 所在地區對應,如 oss-cn-beijing.aliyuncs.com。
  3. Bucket 不存在或無權限:確認 Bucket 名稱、ACL 設定。
  4. 防火牆/代理阻擋:伺服器出站規則封鎖 OSS 埠(80/443)。
  5. 大檔案逾時:預設 HTTP 逾時過短,需調整 HttpWebRequest.Timeout 或 OSS SDK 設定。

排查步驟

  1. 檢查程式碼中 _accessId、_accessKey 是否已填入有效值。
  2. 使用 ossutil 或 Postman 呼叫 OSS API 驗證憑證與網路連通性。
  3. 啟用 SDK 除錯日誌:OssClient.SetLogLevel(LogLevel.Debug)。
  4. 抓包 (Wireshark/Fiddler) 對比瀏覽器直傳與伺服器端轉傳的差異。
  5. 確認 fileToUpload 路徑在伺服器端真實存在(Server.MapPath 轉換正確)。

程式碼關鍵修正

private const string _accessId = "你的AccessKeyId";
private const string _accessKey = "你的AccessKeySecret";
private const string _endpoint = "https://oss-cn-beijing.aliyuncs.com"; // 需與Bucket地域一致

// 上傳前檢查檔案是否存在
if (!File.Exists(fileToUpload)) {
    throw new FileNotFoundException("伺服器端找不到暫存檔案:" + fileToUpload);
}

總結

「連線重置」多為驗證失敗或網路中斷。優先確認 AccessKey/Secret、Endpoint、Bucket 權限與伺服器出站網路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved