。它包括多个部分,每一部分处理一个特殊的任务。web.config文件由许多小节组成,包括验证小节、安全性小节、错误处理小节和web服务小节。并以键值对的形式保存应用程序配置信息。
作为标准的xml文档,web.config文件的根元素是<configuration>,它包含一个子元素<system.web>,而后者又包括许多配置部分。Web.config文件包含许多标记,每一个标记对应一个所谓的"部分(section)"。如,表示身份验证的Authentication、表示授权的Authorization、定制错误的CustomErrors、会话设置SessionState等等。
尽管web.config文件为用户自定义提供了很大的空间,我们可能仍然需要一些用户设置。appSettings部分就是用来满足这项要求的,请记住这部分并不在<system.web ></system.web>标记中,而是单独存放在<configuration></configuration>标记中,数据库连接字符串、email服务器地址和日志文件存放路径,通常页可以放在这部分。
下面的代码片段是一个web.config文件的设置小节,该小节定义了应用程序设置,即appSettings小节,它包含了数据库连接字符串和另一个用户设置LogFilePath键值对:
<configuration>
<appSettings>
<add key="Conn" value="server=(local);uid=sa;pwd=;database=myDB" />
<add key="logFilePath" value="c:\mylogs" />
</appSettings>
</configuration>
.Net框架支持asp.net应用程序访问应用程序设置。其ConfigurationSettings 类提供对指定配置小节中配置设置的访问。该类的公共属性ConfigurationSettings.AppSettings 属性可获取 <appSettings> 元素配置节中的配置设置,该属性是一个NameValueCollection,它包含配置设置的名称/值对:
public static NameValueCollection.AppSettings {get;}
下面的web服务方法用于获取应用程序配置设置:using System.Configuration;
[WebMethod]
public string GetAppSetting(string key)
{
return ConfigurationSettings.AppSettings[key];
}
注意,AppSetting属性是只读的,要想修改应用程序设置,必须编辑web.config文件。同时,如果key键并不存在于web.config文件中,读取AppSettings属性将引发错误。
ConfigurationSettings 类还提供了一个公共方法ConfigurationSettings.GetConfig 用于返回用户定义的配置节的配置设置。
public static object GetConfig(string sectionName);
其中,参数sectionName 表示要读取的配置节。下面的web服务方法用于获取用户定义配置的指定键值:
[WebMethod]
public string GetConfig(string key)
{
NameValueCollection nv=new NameValueCollection();
//实例化NameValueCollection 类对象
nv=(NameValueCollection)ConfigurationSettings.GetConfig("appSettings");
//返回用户定义的配置节的设置
return nv[key].ToString();
//返回特定键值
}
六、消费"实现asp.net应用程序设置的web服务"
你可以编写 Web应用程序、Windows桌面应用程序或Web服务等应用程序来消费已经创建的应用程序设置web服务。实现方式同任何标准的web服务一样,没有什么特别之处,应该说很简单,这里就不展开讲解了。
参考资料:《Professional Xml For .Net Developers》、《Professional Asp.net Web Services》