久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

WinForm 上傳共享文件夾:SMB 憑據(jù)、流式復(fù)制與 1219 排錯(cuò)

WinForm 上傳共享文件夾:SMB 憑據(jù)、流式復(fù)制與 1219 排錯(cuò) 簡介這份資料是一套基于VS2010與C# Winform的文件上傳示例面向需要把本地文件寫入局域網(wǎng)共享目錄的開發(fā)者也可用于企業(yè)內(nèi)部數(shù)據(jù)傳輸、共享盤上傳等場景。壓縮包共23個(gè)文件約36KB以6個(gè)cs源碼為核心配有sln解決方案與csproj項(xiàng)目配置并包含exe、pdb、resources/resx、settings等編譯調(diào)試與界面資源文件結(jié)構(gòu)適合直接打開對(duì)照學(xué)習(xí)。已有1429人學(xué)習(xí)。代碼圍繞文件選擇、UNC路徑與憑據(jù)連接、FileStream/NetworkStream讀寫、BackgroundWorker進(jìn)度反饋、異常處理和文件類型大小校驗(yàn)展開可幫助讀者理解從界面交互到網(wǎng)絡(luò)共享寫入的完整鏈路并據(jù)此排查權(quán)限不足、連接失敗等常見問題快速遷移到自己的上傳模塊中。1. 從「復(fù)制粘貼能用」到線上必翻車WinForm 上傳共享文件夾的真實(shí)邊界某個(gè)做設(shè)備巡檢的桌面項(xiàng)目客戶要求把每天生成的報(bào)表直接寫進(jìn)機(jī)房的共享文件夾理由很樸素那邊已經(jīng)有備份策略不想再維護(hù)額外的傳輸服務(wù)。聽起來File.Copy一行就能收工真上線第一周就翻車了開發(fā)機(jī)上跑得好好的裝到車間電腦上彈「拒絕訪問」換一臺(tái)機(jī)器又變成「找不到網(wǎng)絡(luò)路徑」還有一臺(tái)傳到 60% 卡死不動(dòng)。問題不在 C# 語法而在「文件上傳到共享文件夾」這件事本身牽扯三樣?xùn)|西SMB 會(huì)話、進(jìn)程身份、Windows 憑據(jù)緩存。WinForm 進(jìn)程默認(rèn)一樣都沒有。這篇記錄按「先看清鏈路 → 再寫上傳骨架 → 再解決憑據(jù) → 最后排坑」的順序走一遍代碼可以直接抄坑我盡量標(biāo)在你會(huì)踩的位置上。2. 拆開 SMB 上傳鏈路UNC 路徑、身份上下文與三種憑據(jù)方案2.1 一次寫\\server\share到底經(jīng)過了什么當(dāng)你寫下\\fileserver\share\report.xlsx這個(gè)路徑時(shí)Win32 的CreateFile并不會(huì)自己去連網(wǎng)絡(luò)它把活交給 mpr多重提供程序路由器重定向器重定向器再落到 SMB 客戶端驅(qū)動(dòng)上。整個(gè)過程拆開是四步解析主機(jī)名 → 建立到 445 端口的 TCP 連接 → 協(xié)商 SMB 版本并完成身份認(rèn)證得到一個(gè)會(huì)話Session→ 對(duì)這個(gè)共享做樹連接Tree Connect此后才是 CREATE / WRITE / CLOSE 這些文件級(jí)操作。真正決定成敗的是第三步。認(rèn)證用的憑據(jù)來自當(dāng)前進(jìn)程令牌域環(huán)境里走 Kerberos工作組或本地賬戶走 NTLM。關(guān)鍵在于整條鏈路上沒有任何一個(gè)參數(shù)能讓你「這次寫入用 A 賬號(hào)下次用 B 賬號(hào)」。憑據(jù)只在建會(huì)話時(shí)用一次之后緩存在內(nèi)核的會(huì)話表里按「服務(wù)器 用戶名」索引后續(xù)所有 IO 直接復(fù)用。這解釋了兩個(gè)最常見的困惑。第一為什么開發(fā)機(jī)上一切正?!阍谫Y源管理器里手輸過一次密碼會(huì)話已經(jīng)被建好了CtrlF5 調(diào)試的進(jìn)程正好蹭上了這個(gè)會(huì)話。第二為什么兩個(gè)不同賬號(hào)往同一臺(tái)服務(wù)器傳文件會(huì)報(bào) 1219因?yàn)閮?nèi)核發(fā)現(xiàn)「這臺(tái)服務(wù)器已經(jīng)有一條屬于別人的會(huì)話了」它拒絕在同一條會(huì)話上疊加第二套憑據(jù)。提示判斷當(dāng)前有沒有活著的會(huì)話用net use看列表或者Get-SmbConnection看客戶端側(cè)連接明細(xì)比猜快得多。2.2 三種身份方案先選型再寫代碼WinForm 上傳到共享文件夾本質(zhì)上是在回答「以誰的身份寫」這個(gè)問題只有三條路方案實(shí)現(xiàn)方式適用場景主要代價(jià)當(dāng)前登錄用戶不寫任何代碼直接寫 UNC 路徑域環(huán)境且登錄賬號(hào)已被授予共享寫權(quán)限換機(jī)器、換賬號(hào)就失效運(yùn)維無法自證顯式憑據(jù)建會(huì)話WNetAddConnection2mpr.dll工作組環(huán)境、NAS、客戶只給一個(gè)專用上傳賬號(hào)需要處理多重連接沖突與連接釋放登錄令牌模擬LogonUserWindowsIdentity.Impersonate一次進(jìn)程內(nèi)要訪問多臺(tái)不同憑據(jù)的服務(wù)器令牌生命周期管理更繞容易漏掉 Undo絕大多數(shù)現(xiàn)場我推薦第二條。原因是它足夠「局部」連接是進(jìn)程級(jí)的、可顯式釋放的出問題只影響這一臺(tái)上傳功能不會(huì)污染整個(gè)應(yīng)用的執(zhí)行上下文。第三條更適合「一臺(tái)客戶端要同時(shí)往三臺(tái)不同 NAS 寫」的極端場景如果只是往一臺(tái)文件服務(wù)器寫用WNetAddConnection2就夠別把簡單問題復(fù)雜化。有一個(gè)必須提前說清的邊界WNetAddConnection2建立的連接屬于當(dāng)前登錄會(huì)話不是屬于進(jìn)程。進(jìn)程退出連接可能還在反過來如果同會(huì)話里別的程序已經(jīng)用另一個(gè)賬號(hào)連過這臺(tái)服務(wù)器你這邊就會(huì)撞 1219。所以代碼里必須配對(duì)寫「建立」和「斷開」不能只建不斷。2.3 先用手把通道驗(yàn)證通再動(dòng) C#寫代碼之前先用 PowerShell 把「網(wǎng)絡(luò)通、認(rèn)證通、能寫」這三件事分開驗(yàn)證。這一步能省掉后面 80% 的瞎猜# 1) 只驗(yàn)端口不涉及任何憑據(jù)用來區(qū)分「網(wǎng)絡(luò)問題」和「權(quán)限問題」 Test-NetConnection -ComputerName fileserver -Port 445 # 2) 用目標(biāo)上傳賬號(hào)顯式建一次會(huì)話 # 用戶名格式三選一DOMAIN\user、fileserver\user本地賬戶、.\user net use \\fileserver\share /user:DOMAIN\uploader Pssw0rd # 3) 寫一個(gè)探針文件確認(rèn)共享目錄真的有寫權(quán)限不只是讀 Set-Content -Path \\fileserver\share\_probe.txt -Value ok -Encoding UTF8 # 4) 用完立刻刪掉避免它和你后面調(diào)試的憑據(jù)打架 net use \\fileserver\share /delete第 1 步失敗說明是網(wǎng)絡(luò)或防火墻445 被攔、主機(jī)名解析不到都會(huì)在這里暴露第 2 步失敗看返回碼1326 是賬號(hào)密碼不對(duì)1311 是找不到登錄服務(wù)器域控不可達(dá)第 3 步失敗但第 2 步成功說明賬號(hào)能連上但共享 ACL 或 NTFS 權(quán)限沒給寫這是純運(yùn)維問題代碼怎么寫都沒用。第 4 步經(jīng)常被跳過然后調(diào)試時(shí)莫名其妙報(bào) 1219。養(yǎng)成習(xí)慣手動(dòng)驗(yàn)證完就刪別留在會(huì)話表里。另外補(bǔ)一句關(guān)于映射盤不要用Z:\這種盤符。映射盤只在建立它的那個(gè)登錄會(huì)話內(nèi)可見服務(wù)、計(jì)劃任務(wù)、另一個(gè)用戶跑的進(jìn)程統(tǒng)統(tǒng)看不到。共享路徑永遠(yuǎn)寫 UNC。3. WinForm 端的上傳骨架選文件、跑后臺(tái)、報(bào)進(jìn)度3.1 界面線程和上傳線程的分工WinForm 里最容易犯的錯(cuò)不是上傳失敗而是上傳成功但窗口卡成白板。File.Copy和同步的FileStream.Write都是阻塞調(diào)用放在按鈕事件里UI 線程一堵進(jìn)度條不動(dòng)、取消按鈕點(diǎn)不動(dòng)用戶直接判定「程序死了」。正確寫法是把上傳整體丟進(jìn)Task.Run進(jìn)度用IProgressT回報(bào)。ProgressT在構(gòu)造時(shí)捕獲當(dāng)前的SynchronizationContextReport會(huì)自動(dòng)BeginInvoke回 UI 線程所以你在回調(diào)里直接改控件屬性是安全的不用手寫Invoke。private CancellationTokenSource _cts; private async void btnUpload_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() ! DialogResult.OK) return; _cts new CancellationTokenSource(); btnUpload.Enabled false; progressBar1.Value 0; // ProgressT 在 UI 線程構(gòu)造回調(diào)自動(dòng)回到 UI 線程 var progress new ProgressUploadProgress(p { progressBar1.Value (int)(p.Percent * 100); lblStatus.Text ${p.CurrentFile} {p.Sent / 1024 / 1024}MB / {p.Total / 1024 / 1024}MB; }); try { string uncDir \\fileserver\share\reports; await Task.Run(() FileUploader.UploadAsync( openFileDialog1.FileName, uncDir, progress, _cts.Token)); lblStatus.Text 上傳完成; } catch (OperationCanceledException) { lblStatus.Text 已取消; } catch (Exception ex) { // 不要只彈 ex.MessageWin32Exception 的 NativeErrorCode 才是關(guān)鍵 lblStatus.Text 上傳失敗 ex.Message; } finally { btnUpload.Enabled true; _cts.Dispose(); } }async void只允許出現(xiàn)在事件處理器上這是唯一合法場景await Task.Run把阻塞的 IO 移到線程池UI 線程立刻返回消息循環(huán)。finally里恢復(fù)按鈕狀態(tài)否則一次異常之后按鈕永遠(yuǎn)是灰的。3.2 流式復(fù)制別再用File.Copy一把梭File.Copy在局域網(wǎng)小文件上沒問題但它有三個(gè)硬傷沒有進(jìn)度、不能取消、失敗后目標(biāo)端留下半截文件。自己寫流式復(fù)制三個(gè)問題一起解決。public sealed class UploadProgress { public long Total { get; set; } public long Sent { get; set; } public string CurrentFile { get; set; } string.Empty; public double Percent Total 0 ? 0 : (double)Sent / Total; } public static async Task UploadAsync(string localPath, string uncDirectory, IProgressUploadProgress progress, CancellationToken token) { var fileName Path.GetFileName(localPath); var targetPath Path.Combine(uncDirectory, fileName); var tempPath targetPath .part; // 先寫臨時(shí)名成功后改名 const int BufferSize 1024 * 1024; // 1MBSMB2 下這個(gè)塊大小吞吐比較穩(wěn) var buffer new byte[BufferSize]; // 會(huì)進(jìn) LOH但只分配一次可接受 using (var source new FileStream(localPath, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize, FileOptions.SequentialScan)) using (var target new FileStream(tempPath, FileMode.Create, FileAccess.Write, FileShare.None, BufferSize, FileOptions.WriteThrough)) { long total source.Length, sent 0; int read; while ((read await source.ReadAsync(buffer, 0, buffer.Length, token)) 0) { token.ThrowIfCancellationRequested(); await target.WriteAsync(buffer, 0, read, token); sent read; progress?.Report(new UploadProgress { Total total, Sent sent, CurrentFile fileName }); } await target.FlushAsync(token); } // 同卷 Move 在 SMB 上是 rename 操作讀端不會(huì)看到半個(gè)文件 if (File.Exists(targetPath)) File.Delete(targetPath); File.Move(tempPath, targetPath); }參數(shù)逐個(gè)說。BufferSize取 1MB小于 64KB 時(shí)單次 WRITE 太小、往返次數(shù)多吞吐上不去大于 4MB 在千兆網(wǎng)卡上收益已經(jīng)不明顯反而放大單次失敗的重傳代價(jià)1MB 是常見的折中值。FileOptions.SequentialScan告訴系統(tǒng)這是順序讀它會(huì)提前預(yù)讀機(jī)械盤上提升明顯。FileShare.Read允許別人同時(shí)讀源文件避免「文件正被占用」目標(biāo)端用FileShare.None因?yàn)閭髁艘话氲奈募辉摫蝗魏稳舜蜷_。FileOptions.WriteThrough是關(guān)掉寫緩存直寫安全但慢。如果共享盤本身有 UPS、鏈路穩(wěn)定把它去掉吞吐會(huì)好一截如果是跨機(jī)房、鏈路抖保留它更穩(wěn)。這是取舍不是對(duì)錯(cuò)。最后兩行是「原子改名」代碼里用的是 .NET Framework 寫法因?yàn)镕ile.Move的 overwrite 重載要 .NET Core 3.0 才有。.NET 6 直接File.Move(tempPath, targetPath, true)。3.3 取消、超時(shí)與「看起來卡住」CancellationToken的檢查點(diǎn)要放在ReadAsync之后、WriteAsync之前。放在循環(huán)開頭也行但那樣用戶點(diǎn)了取消要等當(dāng)前這 1MB 寫完才響應(yīng)體感仍然卡。放中間是讓取消在「讀完一塊、還沒寫」的空隙生效最大延遲就是一次塊寫入的時(shí)間。超時(shí)不是CancellationToken能解決的。SMB 的 IO 沒有官方的 per-operation 超時(shí) API網(wǎng)絡(luò)斷了之后WriteAsync可能掛幾十秒才拋IOException。穩(wěn)妥做法是在外層再套一層Task.WhenAny(uploadTask, Task.Delay(TimeSpan.FromMinutes(10), token))超時(shí)了就取消并提示「網(wǎng)絡(luò)異常請(qǐng)重試」同時(shí)刪掉目標(biāo)端的.part文件。這個(gè)兜底邏輯不優(yōu)雅但比讓用戶對(duì)著卡死的進(jìn)度條干等強(qiáng)。另外進(jìn)度回調(diào)的頻率要控制。1MB 一塊一個(gè) 500MB 的文件就是 500 次Report每次都要BeginInvoke到 UI 線程消息隊(duì)列會(huì)被刷屏。常見做法是加個(gè)時(shí)間戳兩次回調(diào)間隔小于 100ms 就跳過只更新字節(jié)數(shù)不刷新界面。4. 帶憑據(jù)訪問WNetAddConnection2封裝與配置落地4.1 為什么net use能通、程序里卻拒絕訪問這是現(xiàn)場最高頻的誤解。運(yùn)維在服務(wù)器上net use測試通過就認(rèn)為「權(quán)限沒問題」結(jié)果客戶端一跑就報(bào)拒絕訪問。原因在于net use是在你的交互式登錄會(huì)話里建的連接而 WinForm 在客戶機(jī)上可能以另一個(gè)本地賬號(hào)運(yùn)行甚至以計(jì)劃任務(wù)的服務(wù)賬戶運(yùn)行那是完全獨(dú)立的登錄會(huì)話會(huì)話表是空的。同一個(gè)登錄會(huì)話內(nèi)的進(jìn)程共享內(nèi)核里的憑據(jù)緩存所以「我先在資源管理器里輸過密碼然后程序就能跑了」這種現(xiàn)象是真的但它不可交付??蛻魮Q臺(tái)機(jī)器、換個(gè)賬號(hào)、重啟一次連接就沒了。結(jié)論很硬上傳功能自己負(fù)責(zé)建連接不能依賴任何外部預(yù)先建立的會(huì)話。4.2 P/Invoke 封裝與生命周期管理WNetAddConnection2在 mpr.dll 里簽名不復(fù)雜麻煩的是結(jié)構(gòu)體和標(biāo)志位。[StructLayout(LayoutKind.Sequential)] internal struct NETRESOURCE { public int dwScope; public int dwType; // 1 RESOURCETYPE_DISK public int dwDisplayType; public int dwUsage; public string lpLocalName; // 留 null 表示不做盤符映射 public string lpRemoteName; // \\fileserver\share public string lpComment; public string lpProvider; } internal static class NativeNet { [DllImport(mpr.dll, CharSet CharSet.Unicode)] public static extern int WNetAddConnection2(ref NETRESOURCE nr, string password, string username, int flags); [DllImport(mpr.dll, CharSet CharSet.Unicode)] public static extern int WNetCancelConnection2(string name, int flags, bool force); } public sealed class NetworkShare : IDisposable { private const int RESOURCETYPE_DISK 1; private const int CONNECT_TEMPORARY 0x00000004; private readonly string _remote; private bool _connected; public NetworkShare(string uncPath, string userName, string password) { _remote uncPath.TrimEnd(\\); var nr new NETRESOURCE { dwType RESOURCETYPE_DISK, lpRemoteName _remote, lpLocalName null }; int rc NativeNet.WNetAddConnection2(ref nr, password, userName, CONNECT_TEMPORARY); if (rc ! 0) { // 1219 單獨(dú)提示運(yùn)維一看就懂 string hint rc 1219 ? 該服務(wù)器已有其他賬號(hào)的連接請(qǐng)先斷開或重啟客戶端 : 連接共享失敗; throw new IOException(${hint}錯(cuò)誤碼 {rc}); } _connected true; } public void Dispose() { if (!_connected) return; NativeNet.WNetCancelConnection2(_remote, 0, true); _connected false; } }幾個(gè)參數(shù)值得單獨(dú)講。dwType 1是磁盤資源寫錯(cuò)成 0 會(huì)返回 87參數(shù)錯(cuò)誤。lpLocalName null表示不映射盤符——一旦映射了盤符這個(gè)盤符只對(duì)當(dāng)前登錄會(huì)話有效其他進(jìn)程照樣看不到反而增加清理負(fù)擔(dān)。flags用CONNECT_TEMPORARY0x4而不是 00 表示持久連接會(huì)在用戶配置文件里留下重連記錄客戶機(jī)重啟后自動(dòng)重連憑據(jù)過期了就是一個(gè)莫名其妙的失敗源。臨時(shí)連接在會(huì)話結(jié)束或進(jìn)程退出時(shí)自動(dòng)清理更干凈。Dispose里用force true是為了在還有句柄打開的情況下也能斷開代價(jià)是可能中斷別人的操作。如果上傳是在獨(dú)立進(jìn)程里跑安全如果是共享進(jìn)程謹(jǐn)慎。我一般在上傳方法的finally里釋放不給它泄漏的機(jī)會(huì)。userName的三種格式必須區(qū)分清楚DOMAIN\user走域認(rèn)證fileserver\user走那臺(tái)機(jī)器上的本地賬戶.\user走本機(jī)賬戶。寫錯(cuò)了不會(huì)報(bào)「格式錯(cuò)誤」只會(huì)返回 1326讓你誤以為密碼打錯(cuò)了。4.3 把憑據(jù)放進(jìn)配置DPAPI 加密與啟動(dòng)預(yù)檢明文密碼寫在app.config里是能過編譯、過不了驗(yàn)收的寫法。常見做法是用 DPAPI 的ProtectedData作用域選CurrentUser——同一臺(tái)機(jī)器上換個(gè)賬號(hào)都解不開比明文強(qiáng)得多。// 寫入安裝或首次配置時(shí)執(zhí)行一次 var cipher ProtectedData.Protect( Encoding.UTF8.GetBytes(txtPassword.Text), null, DataProtectionScope.CurrentUser); File.WriteAllText(C:\ProgramData\App\upload.dat, Convert.ToBase64String(cipher)); // 讀取 var raw Convert.FromBase64String(File.ReadAllText(C:\ProgramData\App\upload.dat)); var password Encoding.UTF8.GetString( ProtectedData.Protect(raw, null, DataProtectionScope.CurrentUser) is var _ ? raw : raw);上面讀取那段是我故意寫殘的示意正確的是ProtectedData.Unprotect(raw, null, DataProtectionScope.CurrentUser)。參數(shù)里的null是可選熵值加上它可以讓別的程序即使同賬號(hào)也解不開一般填一個(gè)固定的字節(jié)數(shù)組常量。配置項(xiàng)至少要有四個(gè)RemoteRootUNC 根、UserName、加密后的密碼文件路徑、ProbeOnStartup。然后做一個(gè)啟動(dòng)預(yù)檢應(yīng)用啟動(dòng)時(shí)在后臺(tái)線程建一次連接、寫一個(gè)_probe_機(jī)器名.tmp文件、刪掉、斷開。失敗就把主界面上的上傳按鈕置灰并給出錯(cuò)誤碼。這個(gè)動(dòng)作 200 毫秒但能把「用戶點(diǎn)了上傳才報(bào)錯(cuò)」變成「一進(jìn)來就知道環(huán)境不通」省掉大量溝通成本。5. 避坑清單上線后最容易撞的六類現(xiàn)場5.1 拒絕訪問、多重連接與「目錄不存在」的假象現(xiàn)象一Directory.Exists(\\fileserver\share\reports)返回 false但目錄明明存在。原因很反直覺當(dāng)進(jìn)程對(duì)共享沒有訪問權(quán)限時(shí)Directory.Exists不會(huì)拋異常它直接返回 false把「沒權(quán)限」和「不存在」糊成一個(gè)結(jié)果。你按「目錄不存在」去建目錄再收到一個(gè)拒絕訪問就徹底糊涂了。解決方式是永遠(yuǎn)不要用Directory.Exists做權(quán)限判斷改成顯式嘗試寫探針文件把UnauthorizedAccessException單獨(dú)捕獲并提示「共享無寫權(quán)限」。現(xiàn)象二報(bào) 1219提示「不允許一個(gè)用戶使用一個(gè)以上用戶名與一個(gè)服務(wù)器或共享資源的多重連接」。原因是當(dāng)前登錄會(huì)話里已經(jīng)有一條到這臺(tái)服務(wù)器的會(huì)話屬于另一個(gè)賬號(hào)。常見觸發(fā)順序是運(yùn)維先用管理員賬號(hào)net use測過沒刪你的程序再用上傳賬號(hào)連。解決辦法有兩條一是上線前無條件執(zhí)行一次WNetCancelConnection2清場注意可能影響同會(huì)話的其他程序二是承認(rèn)這個(gè)限制、在錯(cuò)誤提示里直接告訴用戶「請(qǐng)重啟客戶端或斷開已有連接」。我的選擇是先清場再連失敗再給提示?,F(xiàn)象三錯(cuò)誤碼 1326 與 86 混著出現(xiàn)。1326 是「登錄失敗用戶名或密碼不正確」86 是「指定的網(wǎng)絡(luò)密碼不正確」。兩個(gè)都指向憑據(jù)但前者多半是用戶名格式寫錯(cuò)少寫了DOMAIN\后者多半是密碼里含有特殊字符在配置文件里被轉(zhuǎn)義吃掉了。密碼里帶、、%時(shí)建議直接改用文件存 DPAPI 密文不要走 XML 屬性。5.2 大文件中斷、超時(shí)與共享盤「休眠」現(xiàn)象四小文件正常超過 500MB 的文件傳到一半報(bào) 64「指定的網(wǎng)絡(luò)名不再可用」重試又好了。這通常不是代碼問題。一是網(wǎng)絡(luò)設(shè)備或防火墻對(duì)長連接有會(huì)話老化時(shí)間空閑幾十秒就掐二是目標(biāo)端是做了休眠策略的 NAS磁盤休眠喚醒期間 IO 掛起客戶端等不及就斷了。解決上分兩層應(yīng)用層做重試捕獲IOException后最多重試 3 次每次間隔遞增2s、4s、8s并且從斷點(diǎn)續(xù)傳而不是從頭傳否則 1GB 文件重試三次等于傳三遍環(huán)境層推動(dòng)運(yùn)維把共享端休眠關(guān)掉或者把心跳包間隔壓到小于老化時(shí)間。現(xiàn)象五進(jìn)度條走到 100%但文件大小是 0 或者不完整。這是沒做 flush 就關(guān)流的典型癥狀。FileStream的Close/Dispose通常會(huì) flush但如果用了BufferedStream且外層提前異常緩沖區(qū)里的數(shù)據(jù)就丟了。解決就是顯式await target.FlushAsync(token)再進(jìn)using的釋放流程順序不能反。同時(shí)保留.part后綴讓任何人都能一眼看出這是半成品。5.3 文件名、長路徑與臨時(shí)占用現(xiàn)象六路徑總長超過 260 字符就拋PathTooLongException或者中文文件名在共享端變成亂碼。長度問題在 .NET Framework 上尤其頑固光加\\?\UNC\前綴不夠還要在app.config里開長路徑開關(guān)并且在應(yīng)用清單里聲明longPathAware三件事缺一不可configuration runtime AppContextSwitchOverrides valueSwitch.System.IO.UseLegacyPathHandlingfalse;Switch.System.IO.BlockLongPathsfalse / /runtime /configuration亂碼則基本不是編碼問題而是文件名里帶了 Windows 不允許的字符\ / : * ? |或者尾部是空格、點(diǎn)號(hào)這類名字在本地能建寫到 SMB 上被規(guī)范化后就成了另一個(gè)名字。上傳前統(tǒng)一做一次文件名清洗并且顯式拒絕CON、PRN、AUX、NUL這些保留名——它們即便加了擴(kuò)展名在部分共享端仍然建不出來。還有一類不在代碼里目標(biāo)端的殺毒軟件或同步客戶端會(huì)短暫鎖住剛寫完的文件導(dǎo)致File.Move拋IOException「文件正被另一進(jìn)程使用」。解決辦法是給改名動(dòng)作加一個(gè)小重試3 次每次 200ms比一失敗就報(bào)錯(cuò)體面得多。6. 進(jìn)階把「傳過去」變成可驗(yàn)證的上傳6.1 邊寫邊算哈希落地后再核一次文件「傳過去了」和「傳對(duì)了」是兩件事。千兆內(nèi)網(wǎng)也有靜默損壞的概率跨公網(wǎng)鏈路更高。穩(wěn)妥做法是在寫入的同時(shí)用CryptoStream或增量HashAlgorithm算一遍 SHA256傳完再從共享端讀回來算一遍對(duì)比。注意讀回校驗(yàn)會(huì)把 IO 翻倍大文件建議只在前 N 次上傳或抽樣時(shí)做。// 寫的同時(shí)算哈希避免二次讀源文件 using var sha SHA256.Create(); using var crypto new CryptoStream(Stream.Null, sha, CryptoStreamMode.Write); int read; while ((read await source.ReadAsync(buffer, 0, buffer.Length, token)) 0) { await target.WriteAsync(buffer, 0, read, token); crypto.Write(buffer, 0, read); // 同一份字節(jié)喂給哈希 sent read; } crypto.FlushFinalBlock(); string localHash Convert.ToHexString(sha.Hash); // .NET Framework 用 BitConverter.ToStringCryptoStream掛到Stream.Null上是刻意的它只負(fù)責(zé)吞字節(jié)算摘要不落盤、不額外占空間。FlushFinalBlock必須調(diào)用否則最后一塊不進(jìn)哈希算出來的值永遠(yuǎn)對(duì)不上——這個(gè)坑我踩過一次查了兩個(gè)小時(shí)才發(fā)現(xiàn)是少了一行。6.2 一個(gè)能自證的日志格式上傳失敗最難查的是「到底卡在哪一步」。日志里至少要有五個(gè)字段時(shí)間、源文件全路徑、目標(biāo) UNC 全路徑、當(dāng)前階段連接 / 寫入 / 改名 / 校驗(yàn)、錯(cuò)誤碼。階段字段是關(guān)鍵它把「拒絕訪問」定位到「連接階段」還是「改名階段」指向的排查方向完全不同。階段典型錯(cuò)誤碼該找誰連接53 / 64 / 67 / 1219 / 1326網(wǎng)絡(luò)或賬號(hào)運(yùn)維寫入5 / 39 / 112共享 ACL、磁盤滿改名32 / 5目標(biāo)端占用、權(quán)限繼承校驗(yàn)無錯(cuò)誤碼哈希不一致鏈路質(zhì)量、中間設(shè)備6.3 上線前我會(huì)強(qiáng)制跑的三條檢查第一條斷網(wǎng)重連。上傳到一半拔網(wǎng)線確認(rèn)程序在 10 分鐘內(nèi)給出明確失敗提示.part文件被清理且重試能從頭再來不報(bào) 1219。第二條換賬號(hào)跑。用另一個(gè)本地賬號(hào)登錄同一臺(tái)機(jī)器跑一遍上傳驗(yàn)證程序不依賴當(dāng)前用戶的任何會(huì)話緩存。第三條滿盤與只讀。把共享目錄臨時(shí)設(shè)成只讀確認(rèn)提示是「無寫權(quán)限」而不是「目錄不存在」。這三條每次發(fā)版前跑一遍五分鐘能擋掉絕大多數(shù)的現(xiàn)場工單。從那以后我每次交付這類上傳功能都會(huì)在啟動(dòng)時(shí)強(qiáng)制走一遍「建連 → 寫探針 → 刪探針 → 斷開」的預(yù)檢寧可讓用戶一進(jìn)來就看到紅字也不讓他在點(diǎn)了上傳之后對(duì)著進(jìn)度條猜。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日本精品一区二区三| 在线电影亚洲色图| 欧洲综合色图| 五月天综合网| 欧美熟女丝袜| 99在线精品视频| 国产精品视频自拍在线| 久久riav中文精品| 综合久久少妇中文字幕| 欧美韩国你懂得在线| 国产欧美精选激情视频| 天天伊人| 日韩偷拍色图| 中文字幕精品区先锋资源| 成人精品久久| 唐山老熟妇露脸啪啪叫| 清纯唯美综合| 欧美综合自拍亚洲综合图| 污啪啪啪视频| 欧美97超碰| 大香蕉在线SuP| 99re69综合| 欧美性爱www免费版| 精品亚洲一区在线观看| 夜精品久无码| 欧美黄片视频在线观看免费| 熟妇人妻丰满久久久久久久无码| 午夜黄色免费在线观看| 99热这里都是精品| 啊啊啊97视频| 欧美日韩成人| 中文字幕奈奈美被公侵犯| 欧美亚洲韩国视频十五区| 骚乳在线| 18禁中文字幕| 欧美精品三级黄片| 国产9l 大屁股| 99re这里只有精品中心播放| 国产在线激情视频| 免费视频一二三区| AV色五月| 青青草乱入乱欲视频在线观看| 伊人色综合网电影| 国产日韩精品无码去免费专区国产| 2017大香蕉国产精品久久| 国语av最新自产拍在线观看| 翔田千里无码一区| 亚洲中文字幕在线视频一区二区| 亚洲欧美综合图片| 18禁在线视频| 美女诱惑一区| 91另类| 欧美男人天堂| 国产最火爆久久国产网站网站| 人妻少妇精品| 蜜臀久久99精品久久久| 国产精品4p在线观看| 国产主播福利| 91人妻最真实刺激绿帽| 欧美国产欧美在线观看| 国产精品激情久久久久久久| 操逼逼一区视频| 日韩一性一交一A片俄罗斯| 久久久精品九| 欧美丰满少妇交换91欧美精品| 后入式视频国产自| 五月天精品| 99视频自拍| 乱色视频中文字幕| 亚洲欧美中日韩| 第二页中文字幕| 欧美伦乱爱| 欧美特黄视频网站| 人人搞人人插人人操| 国产白丝AV| 乱色老一区二区三区的观看方式| 日本幼女18+| 日本道人妻久久久在线不卡色视频| 另类专区加勒比| 欧美女同在线| 色哟哟综合| www.久久最新地址| 狠狠色婷婷777| 国产精品一二三在线看| 亚洲成av人片色午夜乱码| 久久久久9久久久久| 国产精品午夜福利视频| 江都AV在线| 亚洲精品蜜桃久久久久久久| 亚洲欧洲日韩中文字幕一区| 久久高清欧美国产| 人妻无码后入| 另类欧美色| 亚洲日韩视频二区| 亚洲色图欧美色图制服丝袜| 美女91网| 久久性爱城| 91女人的网站| 91精品国产91熟女| 一二三四日本视频高清| 97在线免费视频观看| 屁股久久久久久久久| 青娱乐黄色录像| 色图综合| 在免费jIzzjIzz在线视频| 天天综合色电影| 2020中文字幕| 综合第一页| 丁香五月天啪啪| 91麻豆天美国产欧美高潮| 三男一女不戴套的A片| 成人精品一区二区91毛片不卡| 婷婷丁香成人| 亚洲se91| 日韩人妻少妇中文字幕| 天天射天天操天天干天天吃2018| 五月天激情四射| 九九九九九九成人| 欧美激情综合色综合啪啪五月| 伦理日韩国产久久| 爱av免费| 无码137片内射在线影院| 国产av高清版| 天天谢天天干| 久久原创中文| 天天干天天干天天| 超碰久在线天天做| 色色五月婷| 婷婷精品国产欧美精品亚洲人人爽| 一级片在线观看高清无码| 亚洲综合99999| 啊啊啊啊无码| 久久9免费视频| 五月丁香| 中文字幕狠狠玩| 日韩有码回春沙龙第一页| 日韩免费性爱视频在线观看| 亚洲综合97| 97在线播放| 在线强奷到舒服的无码视频 | 国产久久av| 超碰在线91| 91国内外在线| 97天天弄| 日韩天天本| 久热婷婷| 蜜臀久久99精品久久久老,,| 国产大学生口爆吞精合集| 国产高清视频无码在线| 蜜桃天美传媒AV一区二区三区| 91狠婷| 大香蕉综合| 欧美日韩在线小说 | 久久 精品| 超碰久在线天天做| 亚洲综合 欧美| 蜜臀在线网站| 久久精品一区二区三区蜜桃臀| 激情五月婷婷综合| 久操91视频| 日本不卡在线二区三区| 婷婷丁香人妻 | 久久久久久日韩| 久久久免费高清中文视频| 91精品国产高清久久久久久,亚洲成人 | 亚州再线| 国产AV人人夜夜澡人人爽麻豆| 一直超碰| 免费网色网站| 久久久久久人| 波多野结衣AV无码一区| 91一起操| 熟女一区二区三区| av天堂加勒比| 精品偷拍13p欧美dodk视频| 91精品国产日韩欧美综合| 国产亚洲精品av一区| 國產尤物AV尤物在線觀看| 亚洲第一精品在线视频| 欧美91精品国产自产| 国产精品一区二区手机看片| 国产精品麻豆视频网站| 99热综合| 91精品国| 精品成人动漫一区二区| 亚洲图片 欧美电影| 日韩日本欧美在线观看| 久久欧美激情| 日韩精品大香蕉伊人在线| 久久国产精品91| 97在线观看免费视频l| 国产青青美女玩逼视频| 欧美色图下一页| 熟女天天干| 熟女少妇一区二区三区| 五月天玖玖资源站| 九九九九九九九九九九精品视频| 亚洲天堂在线怕怕视频| 91久热| 搡老女人老91二区| 国产一级作爱毛片| 男人天堂站| 一二三区视频在线观看| 国产精品香蕉热久久新品| 精品久久久av| 国产中文字幕在线观看| 日韩亚洲Av人人夜夜澡人人爽| 国产久久男人天堂| 郑州宾馆老熟女露脸啪啪| 青娱乐亚洲热| 婷婷人妻激情| 国产av色网| 9999久久久久| 99精品在线| 国产97免费视频| 三级三级三级日本99| 日本精品一区二区不卡| 欧美色图中文字幕| 国语对白在线播放视频| 人人操欧美风骚| 超碰天天操| 国产60页| 9999久久久久| 亚洲欧洲偷拍一区| 日本操嫩b网| 中国熟女91| 亚洲欧洲日本精品中文a∨| 密臀AV在线| 丁香六月东京热| 天天网综合| 日韩综合色网| 91欧美| 欧美国产精品| 91P0RNY大屁股人妻| 91小视频| 日本加靬比网站发布页| 91站街按摩店老熟女熟女| 亚洲人妻中文高清| 欧美综合综合| 区一在线观看| 欧美日韩国第一区| 亚洲熟妇自偷自拍另欧美| 密乳AV免费观看| 四虎影视精品| 91综合网站| 欧美精品亚洲精品日韩传电影| yirendaxiangjiashipin| 综合网色| 人妻少妇色综合| 黄色网址在线免费观看| 97超碰美女| 久久亚洲一区二区色婷婷| 少妇内射www在线观看视频| 性爱视频久久| 国产女人91精品嗷嗷嗷嗷| 中日韩熟女| 艹少妇网站| 久久久久九九九| 人人摸人人叼| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 久久色精品视频在线| 亚洲天堂2020| 吖在线不卡一区二区国产剧情| 午夜福利一区二区影院| 人人贴人人摸| 9色在线| 国产精品点击进入在线影院| 天天爽入口| 蜜臀网址在线| 在线视频97| 新91视频.cmp| 亚洲高清色综合| 亚洲人天堂| 久久91精品国产9丨久久分亭| 日韩 欧美 视频 在线 一区| 亚洲中文一区二区三区| 久久久性爱| 国产欧美成人精品| 亚洲高清综合网| 一级@啪啪视频| 黑丝自慰喷水网站| 曰韩少妇无码| 蜜臀亚洲中文| 日本123区操B视频| 成人日本精品九区| 操91| 大屁股人妻女教师撅着屁股| 欧美日韩精品国产91| 亚洲AV无码AV吞精久久久久| 夜夜爽夜夜操| 欧美亚洲清纯| 四虎免费看黄| 91大学精品激情戏| 日韩欧美亚洲国产日韩| 亚州高清av| 精品国产一区二区久久| 乱伦1色页| 国产精品夜夜| 日韩精品人妻中文字幕久久久| 亚洲av热热色| 日韩兔费看黄片| 日本操逼视频不卡直接放| 91丨九色丨东北熟女| 国产午夜精品一区二区三区牛牛| 男人的天堂2010| 强被迫伦姧在线观看无码网站| 国产又大又粗又长视频在线| 91久久午夜无码鲁丝片久久人妻| yazhououmeizongya| 欧美性五月| 色综合99999| 国产强奸无码乱伦| 五月婷婷六月丁香| 张柏芝国产一区在线观看| 99免费在线视频| 人妻丰满熟妇av无码区蜜桃| 九九热男人天堂| 日韩免费簧片| 免费男人的天堂| 欧美亚洲日韩人妻在线观看| 精品视频免费在线一区| 亚洲人妻久久久| 防屏蔽在线视频| 国产在线播放成人免费| 亚洲nv男人的天堂网| 9久在线视频只有精品| 97色视频在线| 欧美黑人猛交春色影视大全| 人人操肉肉| se..亚洲欧美| WWW美腿丝袜香蕉中文| 色色激情五月天| 中文字幕乱码人妻二区三区| 亚洲毛片基地专区| 九九九九九九九| 老女人爆菊| 国产亚洲精品美女久久久m| 熟妇人妻精品一区二区| 成熟熟女国产精品一区二区| 9久精品| 91老熟女| 久久久久久九九九| 久久久18禁| 亚州成人a∨| 色五月婷婷中文字幕| 国产操逼视频在线观看| 91在线视频国产网站| 99re6国产精品99re| 91网站18在线| 亚洲精品成人| 香蕉久久国产AV一区二区| 亚洲图片婷婷五月天| 中文字幕av亚洲精品| 精品无人区麻豆乱码1区2区图片 | 欧美亚洲清纯| 老鸭窝在线视频播放| 日本黄色XXX| 国产偷人妻精品一区二区在线| 69综合网| 伊人久久亚洲中文字幕不卡| 综合激情一一91| 2001天天操| 91美女视屏| 国产精品色哟哟| 男人干美女| 欧美日韩夜夜| 加勒比伊人影院| 亚洲欧美国产精品久久久久久久| 91色欧美| 成年人网站在线免费观看| 国产乱伦性爱区| 黄片com.| 精品国产一区二区三区av在线资源| 色欲日韩欧美在线一区| 日韩欧美视频青青| 亚洲欧洲久久天堂| 超碰 欧美| 国产精品人妻无码久久久老鸭窝| 一区AV| 青娱乐日韩无码| 97舔舔| 老女人91| 欧美综合在线91| 超碰在线观看av不卡| 欧美日韩岛国大片在线观看| 欧美第五页| 日韩三级久久久| 屁股久久久久久久久久| 久久久专区| 久久婷婷亚洲| 天天色天天干天天爱| 美女爽爽爽刺痛洞洞| 亚洲情色在线| 女沟厕偷窥piss小便| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 99少妇| 天综合网| av天堂手机版追回| 中文字幕一区二区无码成人| 成熟熟女国产精品一区二区| 精品一区二区3区| 久久欧美性爱视频| 97干97色| 亚洲精品视频在线播放| 婷婷亚洲天堂| 国产热av| 国产亚洲色婷婷久久99精品91 - 百度| 日韩欧美午夜视频在线| 色噜噜综合在线| 成人性爱av| 精品一区二区啪啪啪| 一区二区偷拍拍视频| 欧美色图20p| 亚洲精品尤物yw在线影院| 久久无码成人| 青青草在线视频人人想人人上| 国产精品一二三| 亚洲无码免费看| 丁香五月偷拍| 精品久一区免费| 高清无码在线播放网站| 午夜男人天堂| 97精品综合久久| 射综合网| 天天伊人| 久久久无码视频| 亚洲天在线| 亚洲综合情色| 黄网站黄视频网站进入口| 九九热精品在线| 久久美女国产| 亚一综合久久久久久久久久| 色色毛片| 97超碰磁| 无码av永久免费专区网站| aa片毛片| 欧美一级黄片视频在线| 国产成人自拍视频视频| 国产成人99久久亚洲综合| 久久无码一区二区二三区性色| 一起草三级AV电影在线观看 | 自慰白浆在线观看| 3p国产欧美99热| 欧美少妇第一页| 欧美在线天堂| 伊人五月天| 天天欧美色| 日韩/97| 精国久久一区二区三区98| 少妇激情AV| 欧美—性—交—色| 97se亚洲| 妇女一区二区三区| 中文字幕成人| 日韩一区二区高清在线观看的| 中文字幕乱在线伦视频中文字幕乱码在线| 日逼逼免费看| 色婷婷五月综合激情中文字幕| 日本国产高清色www视频在线| 成人乱人伦一区二区| 伊人激情五月天一区二区| 日本性爱网址| www.婷婷六月天| 成人免费性爱视视| 天综合网欧美| 99久久精品国产高潮| 美骚妇av高清在线| 欧美第一页| 乱欲一区二区| 九九久久一区二区三区| 91c色| jk白丝没脱就开始啪啪| 高跟丝袜AV专区国产| 青青草无码视频| 国产极品精品美女视频| 二级久久网| 欧美日韩国产高清在线一二三区 | 2023天天操夜夜操| 亚洲双插| 嗯嗯啊啊啊好爽| 啊啊啊操一区| yiqicaoav| 欧美淫乱视频| 啊啊啊操死我| 偷拍在线观看视频| 久久一级无码精品毛片6| 69一区二区| 色色婷婷丁香| 日本二三四区| 曰韩精品九九无码| 天天日天天干天天操| 亚洲色吧网| 丁香九月婷婷| 亚洲人在线| 人妻夜夜爽天天爽三区麻豆AV网站| 91久热| 久久婷婷苹果| 久久综合婷婷| 久久精品一区二区一8| 少妇蜜汁| 亚洲天堂人妻熟妇视频| 香港日本韩国人妇99www.wccm20| 影音先锋日本一区二区| 国产精品久久久久久久久久久久久久久久 | yazhououmeizongya| 日韩人妻一区二区精品| 狼人狠干| 精彩国产视频播放1区2区| 最新av中文字幕高清| 欧美日韩一干二干| 亚洲各类熟们中文字幕| 久久久久国产精品久久久| 性爱久久| 亚洲一区日韩精品| 99re只有精品| 亚洲色图综合| 精品中文一区二区| 亚洲欧洲另类| 天天躁日日躁xxxxx| 蜜桃狠狠色伊人亚洲综合| 黑丝内射一区二区三区| 中文字幕AV乱伦| 小骚逼被操的爽不爽| 熟女久久久| aⅴ日韩成人电影av在线免费看av大全 | 国产精品第一页国产大屁股视频免费区| 亚洲人妻爽爽爽| se吧提供国产乱老熟视频胖女人| 九九亚洲视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 成人怡红院| 麻豆国产96在线| 婷婷国产精品九区| 91在线观看,天天综合| 国产精品毛片?v一区二区三区| 91GD.COM| 青青草原av| 日韩免费在线视频观看| 日本一区二区三区欧美日韩中文字幕| 嗯嗯啊啊啊好爽| www.人人cao| 97超碰色屌| 夜色91| 2010男人的天堂| 97在线观| 九九九久久久久| 中文字幕在线免费观看2| 婷婷五月丁香五月| 91亚洲丝袜熟女| 岛国成人av在线播放网址| 欧美特黄视频网站| 综合欧美色图| 人妻少妇久久久| 欧美日韩在线小说| 色呦呦呦在线观看视频| 丰满丝袜少妇AV| 蜜臀久久99精品久久久电影| aaa淫乱视频| 国产精品干干干| 91精品国久久久久久无码| 五月丁香黄色网| 伊人操操| 国产家庭乱伦性爱视频| 国产免费大片| 一,爱啪啪,在线免费视频| 麻豆AV一区二区天美传媒| 精品性爱无码在线播放| 亚春色色| 好看的91视频| www.夜夜操| 成人性爱av| 啊啊啊好大好深| 狠狠躁日日躁夜夜躁A| 久久性爱网站| 99re免费视频精品全部| 日韩精品9区| 欧亚在线视频| 人人操人人摸人人看人人插| 欧美日韩在线小说 | 日韩无码精品综合久久| 中文字幕神马久久| 67194无码不卡| 久久超碰久| 欧美婷婷| 狼人久草| 99欧美| 黄片无码在线制服| 欧美黄色大片在线观看| 欧美啪啪色吧在线| 老熟女综合网| 四虎免费在线播放| 亚洲黄色电影| 另类欧美综合| 91bbbbbb| 欧美日韩午夜精品一区二区三区 | 宅男91视频在线播放| 黄色大片一区二区密桃丝袜| 久悠悠av| 超碰地址97| 欧美白嫩女HD| 日本东京热大香蕉a片| 97这里都是精品| 国产第二页| 600国产精品视频| 97在线观看免费视频| 久久久一区二区三区三州| 一级毛片久久久久久久女人18| japan日本高清乱xxxx| 国产激情综合五月久久| 久久综合精品一区二区三区| 免费97视频| 另类欧美色| 国产一区免费午夜视频| 浪人综合网| 亚州色图片在线色| av一区二区三区四区| 亚洲有码第一页| 黑丝91视频| 色穴精品| 九九综合久久| 八人操人人摸人人看| 91快色色色色色| 五月丁香六月激情| 看黑人AV不卡| 国产精品suv一区| 亚洲伊人久久精品影院| 99re9这里只有精品| 无码视频一区二区| 怡春院久久| 一级性爱视频免费观看| 国产成人欧美一区二区三区的国产| 欧美精品一区二区少妇免费A片 | 一本色道久久综合狠狠操| 久久尹人大香焦视| 黄色成人网久久久久久| 一区三区啪啪| 亚欧中文字幕在线视频| 国内毛片四区| av网页一区二区三区| 亚洲影视综合网| 久久久久久中文版| 97ai亚洲| 亚洲AV性爱电影| 少妇人妻精品| 秋霞午夜成人福利片片| 久操大香蕉| yy少妇精品久久| 91日韩| 亚洲无码国产精品久久| 婷婷五月天社区| 职场同事知名国产国产精品久久欧美日韩 | 国产女人和拘做爰视频| 精品久久在线区一区| 特污精品女优骚货黄色视频在线免费观看| 亚洲av影音先锋| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 97色欧洲| 97最新在线播放视频| 亚州色站 日韩电影| 99热这里只有精品1| 日韩有码 一区二区三区| 久久久久9| 久久久少妇诱惑精品视频| 亚洲熟女精品| n1038 一二三区| a片自拍直播视频| 九九热超碰97亚洲最新香蕉 | 日韩中文字幕2020| 日本成人A片网站| 老司机免费视频在线91| 人人做,人人操,人人摸| 后入 亚洲 美女 射| 香蕉欧美| 欧美性猛交美女自慰91| 一区二区乱码福利| 九九九久千久久激情蜜桃在线看| 精品国产一区探花在线观看| 北条麻妃99精品青青久久| 91天天综合日韩欧美| 五月激情在线| 好吊色综合| sss视频华人在线| 岛国视频一二三区| 极品人妻少妇综合| 精品国产99| 操99| 日韩国产乱子伦App| 丝袜亚洲综合| 人人澡人人澡人人| 五月婷视频| 人妻少妇被猛烈进入中| 国产suv精品一区| 熟女中出视频| 天美麻豆精品视频99| 被体育老师抱着c到高潮| 永久电影三级在线观看| 国产精品香蕉| 日本媚薬中文字幕在线| 男人天堂网手机版婷婷| 高树玛利亚无码流出| 天天享受天天看| 日日噜噜夜夜狠狠视频无| 亚洲极品| 亚欧操逼片在线观看 | 日韩人妻无码专区| 艹比视频国产精品| 精品999999| 亚洲激情综合另类| 夫妻天天操岛国视频| 久久熟女嫩草成人片免费| 精品人妻一区二区三区夜夜| 精品视频123区小说区| 91在线|亚| 能看的AV| 精品.99999| 天天摸天天插天天日| 亚洲美女精品| 丝袜大香蕉| 黄色AV影视| 色色无码| 97 视频在线| 激情综合网一盗摄| 极品美女嘿咻| 亚洲中文字幕在现观看| 自拍偷拍第26| 五月天玖玖资源站| 精彩视频日韩| 高清不卡 中文 人妻| 色香天天| 久操视频资源站公开| AAA久久| 人妻 欧美 中文| 春色综合免费| 亚洲精品99999| 91精品导航| 91新在线欧美| 亚洲色图加勒比| 亚洲情色 自拍| 97超碰精品| 欧美专区日本专区| 日日夜夜模| 一二三四区电影| 夫妻日逼| 色成人Www精品永久观看| 久久亚洲精品成人av| 五月天婷婷综合| 五月天伊人| 欧美成人精品欧美一级乱黄一区二…| 极品另类| 天天爽天天爽| 欧美日韩小说| 黄色av一区二区在线| 天天躁狠狠躁av| 伊人一区二区在线播放| 色性综合| 免费国产视频| www.色婷婷.com| 夜夜夜夜爽| 黄片qw| 国产白领连续中出在线观看| 色网在线| 亚洲91在线播放影院| 爱欲AV| 91亚洲人| 99只有精品| 另类图片天天影视| 欧美激情综合| 亚洲中文sv| 丁香六月啪| 性感美女啊啊啊在线| 美女高潮视频91| 新亚洲无码| 久久草大香蕉| 欧美色另类| 久久久久久久久久8888| 一区二区视频在看| www.99热| 亚洲日韩视频二区| 诱惑人妻欧美一区在线播放| 亚洲一级特黄大片在线播放91| 国产地址二三| 欧洲熟妇xxXx欧美老妇裸体| 成人熟女区| 久久婷婷色| 综合欧美色图| 操B久久| av一区二区三区 中文| 综合久久97| 中文字幕视频免费| 天综合网| 国产一区二区啪啪视频| 亚洲天堂男人网| 99热aaa| 日韩A优精品在线观看| 超碰97久| 四虎视频在线观看| 午夜理论片在线观看免费| 超碰97国产欧美| 91国产精品熟女| 一级岛国大片| 国产熟女自拍| 激情亚洲天堂| 大香樵伊人网| 在线亚洲 欧美 日本专区| 亚洲s色图| 国产美女口爆吞精| 欧美成人精品A片免费一区99| 国产亚洲精品美女久久久| 亚洲区 欧美区| 青青草色AV| 欧美91久久久久| 久久精品高清无码一区| 欧美999999| 日韩精品第3页| 精品99999久久久久久| 亚洲影视综合网| 亚洲国产一区二区入口| A级毛片在线看免费| 国产肏逼网站| 成人五月天丁香激情综合| 久久男人的天堂| 国产老女人久久毛| 91亚州| 国产美女在线精品免费看| 日本一区二区不卡| 日本成人在线不卡一区二区三区| 91美女在线观看| 蜜臀久久99精品久久久久| 啊啊啊啊啊啊好多水| 易易A毛视频| 91女色| 国产综合久久久麻桃个| 色噜噜国产精品视频一区二区| 久久天堂| 久热影视| 日本大片日本一区二区免费高清| 日本色婷婷| 少妇69中文| 情色五月天就去干| 中国农村熟妇毛片视频| 日韩丝袜二区| 五月天综合在线| 人人妻人人色| 本道在线| 囯产精品久久久久久久久久二区三区 | 黄片www.| 日韩人妻精品中文字幕| 嗯阿好爽好紧| 久久久久久国产精品免费网站| 殴美牲| 国产日韩中文字幕欧美| 日韩在线欧美精品一区二区| 日本午夜精品理论片A级APP发布| 日韩三四五区| 国产乱不卡| 国产精品视频白浆免费| 久久精品无码熟妇一区二区三区视频导航 | 极品综合| 超碰97国产欧美| 五月婷婷丁香六月| 尤物网址| 精品亚洲成人免费在线| 无码二级三级| 超碰97在线中文| 啊啊啊啊啊啊在线看| 综合激情五月丁香| 亚洲国产精品有声| 日本中文字幕不卡视频| 日本亚洲嫩草影院啪啪| 人妻天天爽| 91色爽欧美| 狠狠躁AV| www.五月天| 3028国产精品| 中文字幕一区二区三区高清| 操一对老熟妇爽上天视频| 午夜AV污污污| 97 国产一区| 日韩精品三区四区| 亚洲人成网www| 日本三级日本三级99| AV天黑人| 天天综合网~69| 91久久免费视频互動交流| 97在线视频网站| 任你干在线视频| av午夜玫瑰| 中文字幕 av v| 婷婷五月天影院| 午夜福利激情在线视频| 男啪女色黄无遮挡免费观看| 青草精品视频-日本久久久久网站| 亚洲清纯唯美| 91欧美巨乳| www.91色综合| 婷婷五月天成人网| 五月婷婷久久综合| 国产女人91精品嗷嗷嗷嗷| 成人性爱美曰韩| 午夜理论片在线观看免费| 亚洲成人福利电影免费| 国产精品午夜福利亚洲综合网| 中国AAAAAA黄色片| 亚洲激情在线观看一区| 伊人五月天婷婷| 亚洲巨爆乳一区二区三区四季网| av三级电影在线播放| 男女啪啪网站免费视频| 国产欧美日本亚洲精品| 黄片qw| 97资源久久| 97欧美精品| A级国产欧美激情在线| 欧美组图日韩亚洲中文字幕| 婷婷干黄色| 日韩操逼HD| 人人操人人摸人| 大香蕉黄色一级片免费看| 国产精品自在线发布| 国产午夜无码片在线观看影视 | www.acm成人黄色毛片| 少妇人妻激情四射| 极品出轨视频网站| 日日躁狠狠躁天天躁精品| 精品无码少妇| 国产一级舔足在线观看| 最新国内自拍av免费| 青娱乐国产精品| 人人操人人狠狠操| 东京太热久久久| 亚洲和欧美裸体美女双飞视频| 91爱看| 婷婷人妻激情| 在线视频97| 福利在线观看一区二区| 亚洲小电影免费涩涩成人在线高清 | 操九九九九九九| 啊啊啊不要啊啊受不了了视频在线| 国偷自 一区二区| 2019午夜福利视频| 欧美成人精品一区| 国产精品嫩草久久久久| 免费啪啪啪网站18岁| 97网址www| 久久精品亚洲东京热色播| 一区二区三区四区五区久久久久久| 精品人妻一区二区免费蜜桃视频| 在线观看亚洲成人精品| 国产在线综合福利网站| 成人免费福利在线观看| AV色天香在线| 桃色人妻在线视频| 91久久青青草原精品| WWW啪啪的com| 久久HD| 91久久18禁| 91蜜臀人妻中文字幕在线| 国产精品99精品视频网站| 免费黄色A片| 亚洲成人一二三区| 国产丝袜啪啪| 熟女这里只有精品6| 无码99| 亚州欧美综合| 秋霞一集毛片观看| 日日爽夜夜爽| 久久国产999| 国产二区视频在线观看电影| 任你爽视频| 97se综合| 亚洲欧洲综合成人av一区| 密桃99999| 婷婷激情一区二区三区俺也去| 亚洲在线A| 大香蕉强奸乱伦| 91嫩草欧美| …亚洲黄色厕厕女女在线播…| 国产精品久久久久久久毛片1| 欧美在线官网| 果冻传媒A片麻豆熟妇人妻| 亚洲 国产 精品一区| 60秒试看最爽10分钟网站| 丰满人妻一区二区三区免费| AV不卡在线| 熟女自慰久久久| 亚州一区二区| 亚洲精品视频在线播放| 精品中文日韩字幕视频| 91香蕉视频在线观看免费| 女人双腿搬开让男人桶| 蜜臀AV成人精品蜜臀| 豆花视频操逼网址| 午夜精品久久久久久久男人的天堂 | 乱码熟妇人妻久久久| 日韩9区| 性站| 91亚洲电影| 少妇99成人麻豆| 色妇91| 亚洲暴力强奸AV| 国产久久久久影院老熟女| AA级电影三区| 99re8免费高清在线| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 久久久久久久久国产| 操逼视频亚洲| 亚州综合图片| 91成人精品在线播放| 伊人嫩草| 国产精品亚洲美女久久久久| KK色在线影院| 开心五月婷婷激情| 色狠狠一区二区三区香蕉| 午夜丁香| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 99后入| 动漫爆乳3D奶水一区在线观看| 91色s| 日韩性爱网址| 久久在肏| 夜夜中出国产| 青青草中文字幕| 亚洲一区二区三区麻豆传媒| 日韩日本欧美在线观看| 色香阁在线| 中文字幕97| 99re6国产精品99re在线| 看全色黄大色大片免费视频| 九九九九九九亚洲| 欧美精品久久96人妻无码| 蜜桃视频精品一区二区| 91天天| 91熟女综合| 狼狼色丁香久久婷婷综合五月| 爱丝福利| 涩五月婷婷| 麻豆视频国产一区二区| 久操在97| 国产一区二区三区精品观看啪| 97在线观| www.色婷婷| 男人的天堂 在线一区| 极品久久久久久久久久久久久久| 国产一区二区a毛片| 久草大| 淫荡熟女乱伦网| 亚洲日韩精品久久久久一区壹牛| 青青草在线视频美女| 日本熟妇自慰性高潮一区二区三区| 精品无吗久久| 天天摸夜夜添无码小视频| 日本天天干天天操一区| 亚洲男人天堂手机版| 亚洲和欧美裸体美女双飞视频| 综合 青草 伊久久 影院 综合 | 精品久久久久久中文| 欧美精品97| 91色人妻| 嗯啊抽插大香蕉网页| 亚洲国产成人福利在线观看| 亚洲欧美综合区自拍另类| 亚洲天堂男人的天堂| 欧美天天搞| 日韩成人小视频| 男生通女生屁股| 亚洲人成在线放东京热| 日本3级一区二区免费| 99在线啪| 亚洲女人91| 激情文学 亚洲图片| 五月天婷婷色| 日韩性爱视频在线免费观看| 熟女91网站| 美日韩在线不卡人妻| 日本人妻A片成人免费看片| 青娱乐欧美激情一区二区| 欧美热图99| 二三四区精品| 91无摭挡| 98久久超碰| 日本αv| 中文字幕成人理论在线| 嫩草影院在线观看精品| av日韩手机在线影视| 污啪啪啪视频| 67914在线精品观看| 97就爱干| 99re这里只有精品中心播放 | 在线观看AV片| 精品99999| 呻吟 欧美 日本 中出| 操人妻逼91| 成人三级片无码| 一本久道在线综合视频| 12一15性XXXX粉嫩国产| 天天澡天天爽日日av| 四虎影视在线| 亚洲综合网电影91| 中文字幕日本久久| 亚洲少妇综合在线播放| 国产女同视频在线播放| 91无码西班牙视频在线| 欧洲综合色| 男人的天堂99| 蜜屁Av| 大香蕉欧美伊| 中文字幕视频2区| 欧美成人一区二区三区在线播放| 91丨九色丨国产丨人妻在线| 操b在线观看| 无码不卡亚洲成?人片| 亚洲天堂男| 欧美翘臀视频网站一区二区三区| 好湿好紧视频| 91精品国产长腿丝袜美女| 骚货 中文字幕 av| AV男人天堂网| 日韩一级二级三级免费看完整版国语版 | 8x福利精品第一福利视频导航| 操国产高清| 日韩综合无码一区久久92| 久久久精品网站| 天天色图| 人人做,人人操,人人摸| 欧美色乱| 96久久久久| 中文字幕蜜乳av| www.亚洲成人一区| 97色碰| 国产高清吃奶免费视频网站| 亚洲一区二区三区中文字幕| 亚洲小电影免费涩涩成人在线高清| 日韩一区二区精彩视频| 日本十八禁免费看污网站| 26uuu国产亚洲综合| 五月丁香六月综合缴清无码| 欧美黄色大片在线观看 | 九九九九日本 | 簧片免费看视频| 四虎影院成年人片| 无遮挡h肉动漫在线观看| 依人大香蕉| 久久色人体| 日韩99神马视频片| 蜜桃色院一区久久 | 99亚洲天堂| 久草精品热视| 国产精品网站www| 磁力99AV| 97日韩欧美亚洲| 国产精品日日摸天天碰| 亚洲天堂久久久久久粉红视频| 婷婷干黄色| 蜜臀久久99精品久久久久久酒店| 性91| 91中文字幕| 永久免费av无码网站国产app| 亚洲色色探花| 中文字幕精品一区二区精品| 久久精9|