Всегда вылетает в catch при DirectorySearcher.FindOne()
От: Аноним  
Дата: 08.09.06 07:00
Оценка:
По ссылке http://msdn2.microsoft.com/en-us/library/system.directoryservices.searchresult.aspx
написан код. На основании его написал свой (ниже):
Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()
какой бы существующий каталог не указал.
Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727
VS 2005
 private void button1_Click(object sender, EventArgs e)
        {
            DialogResult result = BrowseMainNodeDialog.ShowDialog();
            // OK button was pressed.
            if (result == DialogResult.OK)
            {
                folderName = BrowseMainNodeDialog.SelectedPath;
                try
                {
                    textBox_MainNode.Text = folderName;
                    DirectoryEntry mySearchRoot = new DirectoryEntry(folderName);
                    DirectorySearcher myDirectorySearcher =
                            new DirectorySearcher(mySearchRoot);

                    // Get the first entry of the search.
                    SearchResult mySearchResult = myDirectorySearcher.FindOne();

                    if (mySearchResult != null)
                    {
                        mySearchResult.GetDirectoryEntry();
                        ResultPropertyCollection myResultPropColl;
                        myResultPropColl = mySearchResult.Properties;
                        for (int i = 0; i < myResultPropColl.Count; i++)
                        {

                        }
                    }
                    else
                    {
                        
                    }
                }
                catch (Exception exp)
                {
                    MessageBox.Show(folderName);
                }
                Invalidate();
            }

            // Cancel button was pressed.
            else if (result == DialogResult.Cancel)
            {
                return;
            }
        }
Re: Всегда вылетает в catch при DirectorySearcher.FindOne()
От: nikov США http://www.linkedin.com/in/nikov
Дата: 08.09.06 08:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()

А>какой бы существующий каталог не указал.
А>Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727

Вы бы хоть посмотрели, что за исключение, и в какой строке возникает...
Re[2]: Всегда вылетает в catch при DirectorySearcher.FindOne
От: BS_tuapse  
Дата: 08.09.06 08:39
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()

А>>какой бы существующий каталог не указал.
А>>Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727

N>Вы бы хоть посмотрели, что за исключение, и в какой строке возникает...


Исключение из за ошибки $exception {"Unknown error (0x80005000)"} System.Exception {System.Runtime.InteropServices.COMException}

В строке DirectorySearcher.FindOne()
Re: Народ ну что никто не сталкивался? Уже наболело!
От: BS_tuapse  
Дата: 08.09.06 13:51
Оценка:
UP!
Re: Всегда вылетает в catch при DirectorySearcher.FindOne()
От: 4erniyPlasch Россия  
Дата: 24.11.06 10:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>По ссылке http://msdn2.microsoft.com/en-us/library/system.directoryservices.searchresult.aspx

А>написан код. На основании его написал свой (ниже):
А>Всегда случается исключение catch (Exception exp) на DirectorySearcher.FindOne()
А>какой бы существующий каталог не указал.
А>Проверил их код для консоли! Тоже самое!!! Почему он не работает? Net Framework 2.0.50727
А>VS 2005



Тоже самон на FW 1.1.

Тут лучше не пользоваться FindOne, а заменить ее на FindAll() и использовать свойство Count коллекции. Тогда исключение происходить не будет, а если ничего не найдено при поиске то Count=0...

Это не решение проблемы с FindOne(), но хороший способ ее обхода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.