首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> .NET Framework >> 正文

使用ConfigurationSettings读取配置

  在未打过补丁的WINXP或者2003中确实有这个问题,在打过补丁的WINXP或者2003中,需要一些额外的操作,才可以使用ConfigurationSettings

  请依次如下步骤:

  1、给COM+ Server Application指定一个Application Root Directory(在Activation Tab下)即: “应用程序根目录”

  比如是 F:\MyDevelop\Temp\COMPLUSTest\COMConfigTest\bin\Debug 目录

  2、然后在这个目录下创建一个 application.manifest 文件,内容如下:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

  </assembly>

  3、然后再创建一个 application.config 文件

  这个文件里面就是你要配置的具体内容,跟其他配置文件没有差别。

  这时候你在执行这个COM+程序,

  COM+内执行

  AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

  返回的就是

  F:\MyDevelop\Temp\COMPLUSTest\COMConfigTest\bin\Debug\Application.Config

  获得配置信息也没有问题了。

  注意这个必须是打过补丁的。

  继续分析原因:

  以下只是我的怀疑:

  微软的Com+并不是一个彻头彻尾的。net应用,里面有大量的非托管代码。

  问题就产生在这里,非托管代码中,并没有应用程序域与应用程序域的配置文件的概念。

  于是乎,第七种情况就产生了。

  如果没打过补丁的,解决方法,就是把配置文件的路径作为一个参数传递进Com+.

  打过补丁的就是上面说的方法。

  另外,如果你的程序是完全意义上的。net程序(也就是不是上述第7中情况)

  你是可以修改一个应用程序的默认配置文件的。

  具体请看参MSDN中关于

  AppDomainSetup.ConfigurationFile 属性 和 IAppDomainSetup.ConfigurationFile 属性 的描述和演示代码。

  配置文件描述应用程序域的搜索规则和配置数据。创建应用程序域的宿主负责提供此数据,因为有意义的值因情况不同而异。

  例如,ASP.NET 应用程序的配置数据针对每个应用程序、站点和计算机进行存储,而可执行文件的配置数据针对每个应用程序、用户和计算机进行存储。只有宿主知道针对特定情况的配置数据的细节。

  当 AppDomain 完成它的第一次绑定后,此属性不得更改。

  参见:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemappdomainsetupclassconfigurationfiletopic.asp

  手工配置应用程序配置文件的范例可以参看下面一篇文章中提到的代码:

  Executing ASMX files without a web server

  http://radio.weblogs.com/0105476/stories/2002/10/24/executingAsmxFilesWithoutAWebServer.html

  http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx

  或者看下面的代码:

  AppDomainSetup info = new AppDomainSetup();

  info.ApplicationBase = "file:///" + System.Environment.CurrentDirectory;

  info.ConfigurationFile = "C:\\Program Files\\MyApp\\MyApp.exe.config";

  AppDomain dom = AppDomain.CreateDomain("RemoteDomain", null, info);

  dom.ExecuteAssembly("HelloWorld1.exe");

  AppDomain.Unload(dom);

  情况8

  服务器进程中被激活的COM+程序中调用组件。组件的做法。

  如果你看了前面几种方式,这种方式就知道如何应对了。

  配置文件的方式看情况7

  调用代码,跟情况1的代码完全一样。

上一页  [1] [2] 

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航