我正在创建一个验证页面,以便当我的应用程序从 dev->qa->prod 移动时,我可以验证 web.config 中的所有设置是否已更改。
循环连接字符串和应用程序设置很容易,但我很难从“自定义”部分获取信息。特别是 elmah 数据。
我写了这个行得通,但这是一项非常糟糕的工作,我确信有一种更清洁的方法。
有什么建议么?
string table = "<table border=\"1\"><tr><td colspan=\"2\">Elmah Information</td></tr>";
Hashtable security = (Hashtable)WebConfigurationManager.GetSection("elmah/security");
Hashtable email = (Hashtable)WebConfigurationManager.GetSection("elmah/errorMail");
Hashtable errorlog = (Hashtable)WebConfigurationManager.GetSection("elmah/errorLog");
table += "<tr><td>allowRemoteAccess</td><td>" + security["allowRemoteAccess"].ToString() + "</td></tr>";
table += "<tr><td>Error Log Type</td><td>" + errorlog["type"].ToString() + "</td></tr>";
table += "<tr><td>Error Log Path</td><td>" + errorlog["logPath"].ToString() + "</td></tr>";
table += "<tr><td>Email To</td><td>" + email["to"].ToString() + "</td></tr>";
table += "<tr><td>Email From</td><td>" + email["from"].ToString() + "</td></tr>";
table += "<tr><td>Email Subject</td><td>" + email["subject"].ToString() + "</td></tr>";
table += "<tr><td>Email SmtpServer</td><td>" + email["smtpServer"].ToString() + "</td></tr>";
table += "<tr><td>Email Async</td><td>" + email["async"].ToString() + "</td></tr></table>";
lblElmah.Text = table;