无法为ASP使用的动态加载的第三方程序集找到.config文件.网络服务



c#, VS2010, . net 4.0, ASP。. NET服务

我在我的服务中使用第三方程序集。这个第三方程序集有一个.config文件,并像这样动态加载:

Service -> MyAssembly1 ->动态加载MyAssembly2使用Assembly.Load() ->第三方程序集使用.config

我通常是一个c++开发人员,所以这个ASP。NET的东西对我来说相当新。我理解ASP。. NET应用程序将其使用的程序集"影子复制"到临时ASP. NET应用程序。. NET Files文件夹。不幸的是,当这个第三方程序集被"影子复制"时,它的.config文件不是。因此,当使用该程序集时,它会失败,因为它无法打开其.config文件。

在我的程序集中,我能够获得该程序集的CodeBase并自己加载.config文件,但这对我没有帮助,因为这个第三方程序集需要打开文件本身。

如果我手动复制。config文件到shadow-copy位置,它会工作得很好。

另外,这个第三方将配置文件称为"assemblyname"。

我得到的错误是:
Unable to load configuration file: "assemblyname.config".

当此第三方程序集用于非ASP。. NET应用程序(即一个正常的Windows应用程序),它工作得很好,因为它不做影子复制的东西。直接从exe位置使用程序集和.config文件。

任何想法?我一直无法找到一个解决方案,虽然我认为这将是一个相当普遍的问题。

加载程序集时,主要的事情是查看程序集在磁盘上放置的路径以及试图从中加载程序集的页面目录。因此,如果您添加用于加载程序集的路径,则并不意味着它将从相同的路径加载配置文件。请尝试将它们都放在应用程序的根文件夹中,看看问题是否仍然存在。

最新更新