2013-02-08 553 views
2

當我執行下面的代碼時,它會導致錯誤,請幫我解決這個問題。錯誤:System.IO.IOException:沒有找到網絡路徑

class MySample 
{ 

    public static void Main() 
    { 


string eventLogName = "Security"; 

string sourceName = "BTHUSB"; 

string machineName = "v.i.com"; 

EventLog eventLog; 

eventLog = new EventLog(); 

eventLog.Log = eventLogName; 

eventLog.Source = sourceName; 

eventLog.MachineName = machineName; 
foreach (EventLogEntry log in eventLog.Entries.Cast<EventLogEntry>().Reverse())// Entries.Cast<EventLogEntry>().Reverse 
{ 
Console.WriteLine(") Entry type: {0} , Category: {1}, Data: {2}, ID: {3}, Source: {4} \n", log.EntryType, log.TimeWritten, log.EventID, log.InstanceId, log.Source); 
} 
} 
} 

錯誤是,

Unhandled Exception: System.IO.IOException: The network path was not found. 

    at Microsoft.Win32.RegistryKey.Win32ErrorStatic(Int32 errorCode, String str) 
    at Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(RegistryHive hKey, String ma chineName) 
    at System.Diagnostics.EventLog.GetEventLogRegKey(String machine, Boolean writ able) 
    at System.Diagnostics.EventLog.Exists(String logName, String machineName) 
at System.Diagnostics.EventLog.OpenForRead(String currentMachineName) 
    at System.Diagnostics.EventLog.GetEntryAtNoThrow(Int32 index) 
    at System.Diagnostics.EventLogEntryCollection.EntriesEnumerator.MoveNext() 
    at System.Linq.Enumerable.<CastIterator>d__aa`1.MoveNext() 
    at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.<ReverseIterator>d__99`1.MoveNext() 
at event.MySample.Main() in E:\.net prep\.net examples\event\event\Program.cs :line 42 

請幫我解決這個問題,在一臺機器名稱字段如何輸入遠程計算機,當它有VICOM,但該系統名稱只有v。

+0

你試圖通過類似'\\計算機名\ $ E做\'也是該機器上的文件夾名稱真的'.NET例子\'你可以從你的機器用'\\計算機名\ $到達機驅動器的路徑..? – MethodMan 2013-02-08 12:27:19

回答

0

該代碼在哪個帳戶下運行?它可能沒有訪問網絡的權限。這將取決於Web服務配置。

別的東西,最近的OS版本不允許嚴格本地帳戶上的其他系統訪問管理共享,這將再次成爲帳戶。

+0

遠程主機已連接,我如何檢查它與C#代碼 – Gomathipriya 2013-02-08 12:52:09

+0

服務器,去上傳文件夾。分享出來。給你的應用程序的身份(如果它是一個網站,使用應用程序池的身份。如果共享位於不同的計算機上,而不是需要訪問共享的進程,那麼你可能需要爲你的應用程序使用一個域帳戶池)權限的文件夾。 – 2013-02-08 12:56:10

2

我會假設你所指定的計算機名「Venus.InsTIL.com」不是經由該路徑接觸。 UNC通往機器的路徑是什麼?您是否驗證過機器是否可以聯繫(ping,UNC文件瀏覽等)?

14

如果你看看你的堆棧跟蹤,你可以看到故障偏偏試圖打開遠程註冊表項。

這意味着遠程註冊表服務未在目標計算機上運行。在v.i.com,打開服務控制面板(SERVICES.MSC),並啓動該服務名爲遠程註冊表

這種服務通常被設置成具有這樣不會自動啓動手動啓動類型。如果您需要經常遠程配置或訪問事件日誌,請將其設置爲啓動自動,以便始終可用。

+0

我得到了同樣的錯誤跟蹤,但是此修復程序對我無效。 – jonas 2014-04-28 11:18:14

0

這很可能是您連接到另一臺機器。如果連接失敗,我希望這個錯誤更像連接被拒絕或無效憑證。這個異常發生在下一步操作中(見堆棧跟蹤),這意味着當代碼嘗試讀取不在那裏的條目時,代碼正在讀取列表。我的猜測是,當foreach命令創建了它的列表時,該條目已經存在,但在遍歷列表時卻不存在。我懷疑這個問題是有什麼改變你的數據。