Dot-Net

.NET 程序無法使用 Windows 7 進行 DNS 查找

  • June 29, 2018

我有一個應用程序在 Windows 7 下的 DNS 查找 (System.Net.Dns.GetHostEntry) 失敗。此應用程序在 XP 下執行良好。

生成的錯誤是套接字錯誤程式碼 11003:

WSANA_RECOVERY 11003

這是一個不可恢復的錯誤。這表明在數據庫查找期間發生了某種不可恢復的錯誤。這可能是因為找不到數據庫文件(例如,與 BSD 兼容的 HOSTS、SERVICES 或 PROTOCOLS 文件),或者伺服器返回的 DNS 請求出現嚴重錯誤。

特別有趣的是,該程序直接從網路共享執行。如果我在 Win 7 下本地執行它,它工作正常。

我已經在所有版本的 caspol(32 位和 64 位)下完全信任網路位置。

是否有任何其他 .NET 或 Windows 7 安全設置阻止從網路共享位置執行的程序進行 DNS 查找?

原來這caspol。

但在 Windows 7 上,僅僅在管理員組中是不夠的。

您還必須右鍵點擊 .NET 命令提示符快捷方式並選擇“以管理員身份執行”以繞過 UAC。

然後正常的 caspol 命令將起作用。

通過從網路共享執行的 .Net 應用程序連接到 SQL Server 時遇到了類似的問題。

對於 Win7/2008,您必須閱讀、列出從共享文件夾到應用程序文件夾的每個文件夾的文件夾內容。如果存在沒有任何權限的中間文件夾,則連接失敗。

適用於 XP。

引用自:https://stackoverflow.com/questions/4368877