关于Web项目的配置文件问题

flareboy 2006-01-12 02:16:00
一个解决方案中包含如下一些项目:
Web项目
类库项目
Web Service项目
这样的话,web项目之外的项目就不能访问到其web.config文件,也就不能共享其配置内容了
一种解决方法是在那些项目中,各加一个xml文件以进行配置,这样的话,如果项目比较多,就
非常麻烦且易出错,有什么方法来使各项目共享配置内容。
我想能不能把web.config文件作为一个普通的xml文件来使用?
...全文
212 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flareboy 2006-02-13
  • 打赏
  • 举报
回复
查阅了一些资料,说说我的理解,达人们帮我看看
假设解决方案中有以下几种类型项目:
WebForm,WebService,控制台应用程序,WinForm,类库
如果程序比较复杂,某些类型的项目会有多个
除了类库,可执行程序和WebForm(包括WebService)都可以有自己的配置文件

由可执行应用程序的配置文件与该应用程序位于同一目录。
配置文件的名称是带有 .config 扩展名的该应用程序的名称。
而WebForm的是web.config
对于这些项目,我们可以分别进行配置
然后可以调用运行库的API来得到自定义的信息

但这样显然会很繁琐,易出错
这些配置文件都有一个相同的节点:<appSettings>,它有一个属性为file.可以这样写:<appSettings file="..\common.config">
</appSettings>
该属性指定包含自定义应用程序配置设置的外部文件的相对路径。如果找不到指定的文件,运行库会忽略该属性。如果找到相同的key值,那么它会覆盖掉主配置文件的value。
注意:用 file 属性指定的配置文件必须将 <appSettings>(而非 <configuration>)作为根节点。以下为一个正确的代码:
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="key2" value="CommonValue2"/>
</appSettings>
这样就可以使得所有的配置文件指向同一个外部文件了,也就合并为一个配置文件了,再用System.Configuration.ConfigurationSettings.AppSettings["key"]来读取其值。

但感觉还是不够灵活,我想能不能这样:上面想法设法把配置文件合并为一个文件,为的是能够利用运行库的API.完全可以把它们放弃!建立一个自定义的xml文件,结构大体如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<section name="common">
<connString1></connString1>
<connString2></connString2>
</section>
<section name="winapp1">
<key1>winapp.value1</key1>
<key2>winapp.value2</key2>
</section>
<section name="webapp1">
<key1>webapp.value1</key1>
<key2>webapp.value2</key2>
</section>
</configuration>
一个节点存放一些通用信息,然后可以为每个项目建立一个节点。
然后建立一个工具类,专用来访问这个文件,比原来要方便的多!
如果机器上有多个相似的应用程序,还可以建立一个WinForm程序来管理这个结构类似的配置文件,这个程序能够配置管理这些文件的路径、结构等信息。
这样比起原来的.config文件要灵活了许多。

一家之言,请多多指教:)
lidong6 2006-01-12
  • 打赏
  • 举报
回复
类库可以访问web.config的内容.

把Web Service在WEB项目里,用虚拟目录实现就可以共用web.config了.
flareboy 2006-01-12
  • 打赏
  • 举报
回复
Cnapollo(旁痞)
在像BusinessModel,CommonUtility这样的项目里不能访问到web.config里面的内容
所以我们才给它们各加了一个config.xml这样的文件分别进行配置
你的意思是把它们放在一个项目里?

还有如果调用远程的Web Service项目,那么Web Service只能访问自己的web.config,而不是我们期望的调用者本地的web.config文件。
LoveCherry 2006-01-12
  • 打赏
  • 举报
回复
如果要访问自己的.dll.config 可以看看 http://www.bearcanyon.com/dotnet/#AssemblySettings
goddy123 2006-01-12
  • 打赏
  • 举报
回复
类库中的类如果是被WEB项目下的页面来调用,访问的就是web.config文件
可以把webservice也放在web项目的目录下,就能够公用一个webconfig了
LoveCherry 2006-01-12
  • 打赏
  • 举报
回复
你试试就知道了,其实还是会访问web.config而不是类库自己的config
Cnapollo 2006-01-12
  • 打赏
  • 举报
回复
补充一句
520zyb(欲穷千里目,更上一层楼) ( ) 信誉:100 2006-01-12 14:25:00 得分: 0


完全可以把web.config文件作为一个普通的xml文件来使用



如果这样的话webservices当然也可以用
Cnapollo 2006-01-12
  • 打赏
  • 举报
回复
类库项目可以访问到.webservices好象不行
sunnystar365 2006-01-12
  • 打赏
  • 举报
回复
建立一个WEB项目之后,会出现一个WEBCONFIG文件,里面可以写你需要的配置在里面啊.
bitsbird 2006-01-12
  • 打赏
  • 举报
回复
一个应用程序由多个项目构成,web应用程序是表示层,其他项目都是类库,为何不能访问web.config??
520zyb 2006-01-12
  • 打赏
  • 举报
回复
完全可以把web.config文件作为一个普通的xml文件来使用

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧