第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建 StreamWriter 實例會使應用程序崩潰并出現(xiàn) RPC 錯誤

創(chuàng)建 StreamWriter 實例會使應用程序崩潰并出現(xiàn) RPC 錯誤

C#
三國紛爭 2022-07-23 09:14:30
我偶然發(fā)現(xiàn)了非常奇怪的錯誤。FileStream在第一個應用程序中使用時,using會遍歷循環(huán)并打印出“Done”,但是,它是exits with the error code 5. Try/Catch也不行。這似乎是非常脆弱的錯誤狀態(tài),因為如果我擺弄文件名(例如C:\TFS\file1.xml.No.xml-> C:\TFS\file1.xml.N.xml),那么它工作正常。如果我var tw = File.CreateText在第一次使用中使用,那么應用程序exits with the code 1073741845。對于可重現(xiàn)的示例,我已設法將問題顯著減少到以下幾行代碼。也許有人可以解釋為什么這會表現(xiàn)得如此奇怪?我也對為什么我無法從這個錯誤狀態(tài)中恢復感興趣?我試過了[HandleProcessCorruptedStateExceptions],[SecurityCritical]沒有效果。    static void Main(string[] args)    {        var ds = new DataSet();        for (int i = 0; i <= 2; i++)        {            using (var fs = new FileStream(@"C:\TFS\file1.xml.No.xml", FileMode.Create))            {            }            using (var tw = File.CreateText(@"C:\TFS\file1.xml"))            {                ds.WriteXml(tw);            }            Console.WriteLine($"Pass {i} done.");        }        Console.WriteLine("Done");        Console.ReadLine();    } 使用 .NET Framework 4.7 控制臺應用程序項目。編輯:如果我Thread.Sleep(2000)輸入每條using語句-然后在第二遍之后遇到此錯誤-它會在打印之前打印Pass 1 done.,因此寫入頻率似乎與此行為無關。Pass 2 done.has exited with code 5 (0x5)在進一步修改這個小樣本后 - 我可以DataSet在完全不使用并且只創(chuàng)建StreamWriter實例的情況下重現(xiàn)該問題。下面的例子應該在突然退出之前產(chǎn)生:TW1 created.TW1 flushed.TW1 created.TW2 flushed.Pass 0 done.    static void Main(string[] args)    {        for (int i = 0; i <= 2; i++)        {            var tw1 = File.CreateText(@"C:\TFS\file1.xml.No.xml");            Console.WriteLine("TW1 created.");            tw1.Flush();            Console.WriteLine("TW1 flushed.");            Thread.Sleep(2000);            var tw2 = File.CreateText(@"C:\TFS\file1.xml");            Console.WriteLine("TW1 created.");            tw2.Flush();            Console.WriteLine("TW2 flushed.");            Thread.Sleep(2000);            Console.WriteLine($"Pass {i} done.");        }        Console.WriteLine("Done");        Console.ReadLine();    }** EDIT2:** 所以在我們看來,這個問題是由Kaspersky Endpoint Security for Windows v11.
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

進程退出代碼意義不大,您更喜歡看到調(diào)試器停止告訴您未處理的異常。但可以肯定的是,這不健康。這是一個反惡意軟件引發(fā)的問題,他們不喜歡XML 文件。通常是程序員機器上的一個問題,他們也不喜歡看似無處出現(xiàn)的可執(zhí)行文件,這些可執(zhí)行文件是由使用進程互操作的進程創(chuàng)建的,就像 IDE 運行 msbuild 一樣。強烈的惡意軟件信號。因此,您要做的第一件事就是暫時關閉它,看看是否能解決問題。

它肯定會,接下來你要做的就是切換到不那么激進的東西。操作系統(tǒng)提供的反惡意軟件解決方案永遠不會那樣做。如果您使用 Avast 或其他任何具有“深度掃描”模式的設備,請盡快卸載。

并且有點擔心您的用戶可能會使用什么,從 FileStream 獲取 IOException 是很正常的,因此非常需要 try/catch。通常,您不想覆蓋文件或刪除您在幾毫秒前創(chuàng)建的目錄,幸運的是,這樣做從來都不是明智之舉。


查看完整回答
反對 回復 2022-07-23
  • 1 回答
  • 0 關注
  • 252 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號