該代碼非常簡單 - 問題是groupPath字符串中存在無效字符(確切地說是'/')。爲什麼會捕獲所有的塊實際上並沒有捕獲所有
我試圖做的事情(至少作爲一個停止差距)是跳過DirectoryEntries,我不能得到cn ---不管爲什麼。
但是,當我運行此代碼catch塊不運行,我得到: 服務器不可操作。和未處理的System.Runtime.InteropServices.COMException。
爲什麼catch塊不能捕捉到這個異常。
try
{
using (DirectoryEntry groupBinding = new DirectoryEntry("LDAP://" + groupPath))
{
using (DirectorySearcher groupSearch = new DirectorySearcher(groupBinding))
{
using (DirectoryEntry groupEntry = groupSearch.FindOne().GetDirectoryEntry())
{
results.Add(string.Format("{0}", groupEntry.Properties["cn"].Value.ToString()));
}
}
}
}
catch
{
Logger.Error("User has bad roles");
}
附加意見: 的代碼實際上是一個自定義RoleProvider,而奇怪的是,如果我參考,此提供在一個簡單的WinForms應用程序,並調用此相同的方法用相同的輸入catch塊完全按照它想要做的。我認爲這表明所提出的關於.NET異常與COM異常的答案並不準確。 雖然我不明白爲什麼從WebDev服務器執行時無法捕獲此代碼。
? – 2009-05-22 16:24:16
你會得到什麼樣的例外?什麼線程? – 2009-05-22 16:30:16
另外,你可以添加異常嗎? (Exception.ToString()) – 2009-05-22 16:33:14