<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings>
   <add key="strConn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\WebApplication1\data\logindata.mdb" />
  </appSettings> 
……
</configuration>
我用的是虚拟主机,用相对路径怎么改啊!加入server.mappath("data\logindata.mdb")
应怎么修改?!
还有
我知道web.config是个XML文件,XML文件里面又是怎样用变量啊?

解决方案 »

  1.   

    在程序里取当前目录,然后和WebConfig里存放的字符串拼一下
      

  2.   

    用~代替C:\Inetpub\wwwroot\WebApplication1看看可以在你提取strConn的value的时候用server.mappath("")把C:\Inetpub\wwwroot\WebApplication1替换掉
      

  3.   

    这里有个改web.config <addstring>节的函数,你看用的着吗/// <summary>  
    ///  修改web.config文件appSettings配置节中的Add里的value属性  
    /// </summary>  
    /// <res>  
    ///  注意,调用该函数后,会使整个Web Application重启,导致当前所有的会话丢失  
    /// </res>  
    /// <param name="key">要修改的键key</param>  
    /// <param name="strValue">修改后的value</param>  
    /// <exception cref="">找不到相关的键</exception>  
    /// <exception cref="">权限不够,无法保存到web.config文件中</exception>  
    public void Modify(string key,string strValue)  
    {   
    string XPath="/configuration/appSettings/add[@key='?']";  
    XmlDocument domWebConfig=new XmlDocument();      
    domWebConfig.Load( (HttpContext.Current.Server.MapPath("web.config")) );   
    XmlNode addKey=domWebConfig.SelectSingleNode( (XPath.Replace("?",key)) );   
    if(addKey == null)   
    {    
    throw new ArgumentException("没有找到<add key='"+key+"' value=.../>的配置节");
    }   
    addKey.Attributes["value"].InnerText=strValue;   
    domWebConfig.Save( (HttpContext.Current.Server.MapPath("web.config")) );