.NET процесс не удается найти DNS с Windows 7 - PullRequest
8 голосов
/ 06 декабря 2010

У меня есть приложение, которое не выполняет поиск DNS (System.Net.Dns.GetHostEntry) под Windows 7. Это приложение отлично работает под XP.

Генерируемая ошибка - код ошибки сокета 11003:

WSANO_RECOVERY 11003
Это неисправимая ошибка.Это указывает на то, что во время поиска в базе данных произошла какая-то неисправимая ошибка.Это может быть связано с тем, что файлы базы данных (например, BSD-совместимые файлы HOSTS, SERVICES или PROTOCOLS) не найдены или DNS-запрос был возвращен сервером с серьезной ошибкой.

Что особенно интересно, так это то, что этот процесс выполняется непосредственно из общего сетевого ресурса.Если я запускаю его локально под Win 7, он работает нормально.

Я полностью доверяю сетевому расположению во всех версиях caspol (32-битной и 64-битной).

Есть ли другие.Параметр безопасности NET или Windows 7, который предотвращает поиск DNS процессами, запущенными из общих сетевых расположений?

Ответы [ 4 ]

3 голосов
/ 08 декабря 2010

Оказывается, это было caspol.

Но в Windows 7 просто быть в группе администраторов недостаточно.

Вы также должны щелкнуть правой кнопкой мыши.Сочетание клавиш командной строки NET и выберите «Запуск от имени администратора», чтобы обойти UAC.

Тогда будут работать обычные команды caspol.

1 голос
/ 22 февраля 2013

Была похожая проблема при подключении к SQL Server через приложение .Net, запущенное из общего сетевого ресурса.

В Win7 / 2008 вы должны читать, перечислять содержимое папки в каждой папке от общего ресурса до приложения.папка.Если есть промежуточная папка без каких-либо разрешений, соединение не устанавливается.

Работает на XP.

0 голосов
/ 06 декабря 2010

Хорошо, чтобы легко проверить, правильно ли настроен ваш DNS, нужно добавить одну HTML-страницу в корневой каталог.Если эта страница отображается так, как ожидалось, с DNS все в порядке.

У каждого свой способ проверки, это прекрасно, потому что мы можем поделиться своим опытом.Мне нравится помещать биты моего кода / страницы на сервер, относящиеся к тому, что я хочу выполнить, по одному биту за раз.

Надеюсь, это поможет ...

0 голосов
/ 06 декабря 2010

Если вы передаете IP-адрес, стоит отметить, что по умолчанию он использует IPv6 и, согласно документации, выдаст исключение .

Я предлагаю получить IPv4-адрес, используя код ниже:

  IPAddress ipv4 = Dns.GetHostAddresses(address).Where(x=>x.AddressFamily == AddressFamily.InterNetwork).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...