0

以下のような小さなコードがあります。

  private string ResolveAddress(string domain)
  {
     try
     {
        if (Regex.IsMatch(domain, @"\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}"))
           return domain;
        else
           return Dns.GetHostAddresses(domain)[0].ToString();
     }
     catch (Exception ex)
     {
        Error.Record("Exception caught in ResolveAddress", ex);
        return domain;
     }
  }

今日、初めて私のホストに接続できないと不平を言う人がいます。ログを調べると、次の例外が表示されます。

# 6/20/2013 9:28:59 AM: Exception caught in ResolveAddress
Exception message: Configuration system failed to initialize
Exception stack trace:    at System.Configuration.ConfigurationManager.PrepareConfigSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Net.Configuration.SettingsSectionInternal.get_Section()
   at System.Net.Sockets.Socket.InitializeSockets()
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
   at NDTPresence.MainWindow.ResolveAddress(String domain)

明らかに、Dns.GetHostAddresses呼び出しが失敗した場合、彼らは私のサービスに接続できません。私の質問は、なぜこれが起こっているのでしょうか? このホスト名が出力される構成ファイルは、ユーザーの AppData/Roaming にある場合に出てきますが、すべての人にインストールされています (私は信じています)。

ありがとう。

4

0 に答える 0