在web项目中的类库中引用webservice 在部署后更改webservice路径的方法

在一次开发过程中发现这样的问题:
我引用外部的webservice连接并不是在solution里面的web层,而是在solution里面的类库中引用的,原本在web中引用自动生成的引用路径会在web.config里面生成,例如:

但是如果是在类库里面引用的话,默认就不会在web.config里面出现key值了,会在类库里面自动生成app.config,生成如下的配制信息:
本来我想,在发布网站之后app.config应该会部署出来吧,否则怎么在部署之后更改webservice的引用呢?可是在部署之后app.config找不到了,难道是把app.config里面的值封装到bin里面去了吗?有点匪夷所思,如果封装进去的话,那何必生成一个app.config给咱们用哦。仔细查找在引用webservice之后生成的东西。
第一,在类库里面会自动添加一个properties文件夹

里面会通过代码生成器生成两个配制文件,不能手动更改的。
第二个生成的就是app.config文件了。
第三个会在类库的跟目录下面生成一个Setting的类,这是一个密封类,并且是访问的权限是internal的。
这里面能做什么呢,通过这个类就可以来更改app.config里面的元素值了。因为它是一个inernal的,所以在别的类库和web层里面无法直接使用这个类,所以我在此引用webservice的类库里面做了一个Config来封装它来达到可以在外部更新值的效果。
第一步是通过web.config里面的值来更新app.config里面的值,因为Setting.Default是只读的,所以只能通过Properties来更新了。
第二步和第三步需要放一起的,否则更新不会有效果的。
如果跟我一样是通过读取web.config里面的值来更新app.config里面的值的话,就可以把这函数放到Golable里面,这样的效果就是每次web.config被更改或者服务器重起的话都会自动更新到app.config里面了。


posted on 2007-01-25 15:53  Sherrys  阅读(4573)  评论(3编辑  收藏  举报

导航