导航
  • 主页
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

自定义config文件的使用

wang_peng 长春联恒科技 .net 高级软件工程师  2009-08-14 02:57:53
我用的是asp.net,index.aspx网页中有这样一段内容:
<td><script src="/PWMIS/Website/Script/PSSM_Script.aspx?ParameterType=FolkType&ControlName=txbFolk¶meterValue=<%=info.Folk%>"></script></td>

上面功能是访问index.aspx页时,网页从服务器端的DropDownList.config文件中读取以下内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<DropDownListItem ID="FolkType" Description="民族">
<TextItem Value="汉族" Name="汉族" Order="1" />
<TextItem Value="蒙古族" Name="蒙古族" Order="2" />
<TextItem Value="回族" Name="回族" Order="3" />
</DropDownListItem>
</configuration>

然后通过程序把内容加载到index.aspx页中形成以下内容
<td><select id="FolkType" name="FolkType"><option value="汉族">汉族</option><option value="蒙古族">蒙古族</option><option value="回族">回族</option></select><td>

问题出现了:系统中有个“后台维护”模块,我想在模块中加个功能,就是在客户端就可以修改这些服务器端的config文件中的内容,这样改配置文件时就不用去服务器那里改了,通常是去机房改(客户的机房是禁地,很少让外人进)。我用StreamWriter类已经实现了在客户端就可以修改这config文件的内容。例改后的内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<TextItem Value="布朗族" Name="布朗族" Order="33" />
<TextItem Value="撒拉族" Name="撒拉族" Order="34" />
<TextItem Value="毛南族" Name="毛南族" Order="35" />
</configuration>
但访问index.aspx页时,加载到index.aspx中的内容并没有改变,还是以下内容:
<td><select id="FolkType" name="FolkType"><option value="汉族">汉族</option><option value="蒙古族">蒙古族</option><option value="回族">回族</option></select><td>
index.aspx中理想的内容应该是
<td><select id="FolkType" name="FolkType">
<option value="布朗族">布朗族</option>
<option value="撒拉族">撒拉族</option>
<option value="毛南族">毛南族</option></select><td>
有人说是缓存问题,可怎么解决呀,请帮帮忙,谢谢!
...全文
156 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
slund 2009-08-14
关注
回复
Tom0418 2009-08-14
学习,学习
回复
ykpbdo 2009-08-14
从sqlserver2005数据库中读取,xml上的信息可添加到自定义的DataSet上,试一下
回复
wuyq11 2009-08-14
直接读取XML试试
Cache.Add检查看看
回复
wuyq11 2009-08-14
是否是全局变量或数据库
<%@ OutputCache Duration="120" VaryByParam="none" %>是否使用了
System.Web.Caching.Cache _cache = HttpRuntime.Cache;
IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
List<string> lst = new List<string>();
while (CacheEnum.MoveNext())
{
lst.Add(CacheEnum.Key);
}
foreach (string key in lst)
{
_cache.Remove(key);
}

Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
回复
xie_yanke 2009-08-14
会不会是。。。。。
网站把这个XML读到了Application全局变量中了? 你虽然改了XML,但没重写Application相关变量,导致读的还是变量中的旧内容?

回复
puzhichen 2009-08-14
学习!
回复
jkx6jf 2009-08-14
学习……
回复
booxi999 2009-08-14
<td> <script src="/PWMIS/Website/Script/PSSM_Script.aspx?ParameterType=FolkType&ControlName=txbFolk¶meterValue= <%=info.Folk%>
&id=<%= new Random().Next(1, 100000) %>"> </script> </td>
回复
wang_peng 2009-08-14
谢谢大家!
要疯掉了!
都试了,问题依旧!
回复
Jinglecat 2009-08-14
你每次都是重新读的这个 config 文件嘛?

还是有什么静态变量存了这个 config 的内容?如果是,保存完 config 之后,清空这个变量,下次重新读

回复
Lovely_baby 2009-08-14
清空浏览器缓存 试试
回复
flyerwing 2009-08-14
jf!
回复
IHandler 2009-08-14
1 确认修改的是否是目标文件,确定是否修改成功
2 绑定数据在Page_Load中的if(!IsPostBack){}
3 页面中不要设置<%@ OutputCache Duration=""......
4 清空浏览器缓存
回复
发动态
发帖子
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
社区公告
暂无公告