IIS 7.5 ASP.OLD .NET4类库(dll)无法读取.Config

时间:2012-08-08 14:20:15

标签: dll .net-4.0 asp-classic iis-7.5

我从IIS 7.5上的ASP.OLD(经典)页面调用.NET4类库。所有的互操作都是好的&电话正在运转。我的问题是,类库在调用时没有从.config文件中获取任何设置。

我在提供ASP.OLD文件的同一文件夹中有一个we.config。我有一个App.Config来自注册类库的文件夹。

我甚至在IIS文件夹中尝试了一个app.config文件。

在类库文件夹中的web.config - 仍然没有乐趣。

IIS应用程序池以经典管道模式运行。   如果我在IIS管理器中为网站打开“应用程序设置”,那么值就在那里。

我应该在哪里放置.config文件&该怎么称呼?

的Ta! Ñ

1 个答案:

答案 0 :(得分:1)

问题是从ASP通过COM互操作调用.NET dll会将.NET dll加载到默认的AppDomain中。 .NET dll将无法识别加载到ASP.NET应用程序域中的ASP.NET,web.configs,当前IIS请求等。就好像它只是由一些正在运行的exe加载,事实上就是这种情况。

您的dll可以访问的配置信息将是w3wp.exe的配置文件。因此,在您的dll中获取此配置信息的一种方法是(虽然您了解我实际上并未推荐此方法)是将w3wp.exe.config文件添加到windows\system32\inetsrv文件夹。这当然是一件可怕的事情,你不应该这样做。

我实际上要做的是创建一个COM可见类,其作用是公开一些表示各种配置设置的属性。属性设置器将值分配给dll的静态空间。然后在ASP应用程序的Global.asa文件中添加一些代码来实现此对象并分配配置值。

dll将在内部引用上述代码设置的静态值。

请注意,在同一个应用程序池中运行的所有ASP应用程序都需要具有相同的配置,因为它们将共享相同的应用程序域。这比同一台机器上的所有ASP应用程序将共享共同配置的其他方法更好。