C# 找不到ASP.NET服务使用的动态加载的第三方程序集的.config文件

C# 找不到ASP.NET服务使用的动态加载的第三方程序集的.config文件,c#,asp.net,config,C#,Asp.net,Config,IIS或IIS Express下的C#、VS2010、.Net 4.0、ASP.Net服务 我正在我的服务中使用第三方程序集。此第三方程序集有一个.config文件,并按如下方式动态加载: 服务->MyAssembly1->使用Assembly.Load()->第三方程序集和.config动态加载MyAssembly2 我通常是C++开发人员,所以ASP.NET的东西对我来说是很新的。 据我所知,对于ASP.NET应用程序,它使用的程序集将“卷影复制”到临时ASP.NET文件文件夹中。 不幸的是

IIS或IIS Express下的C#、VS2010、.Net 4.0、ASP.Net服务

我正在我的服务中使用第三方程序集。此第三方程序集有一个.config文件,并按如下方式动态加载:

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

我通常是C++开发人员,所以ASP.NET的东西对我来说是很新的。 据我所知,对于ASP.NET应用程序,它使用的程序集将“卷影复制”到临时ASP.NET文件文件夹中。 不幸的是,当此第三方程序集被“卷影复制”时,其.config文件不会被复制。因此,当使用此程序集时,它将失败,因为它无法打开其.config文件

在我的程序集中,我可以获取该程序集的代码库并自己加载.config文件,但这对我没有帮助,因为这个第三方程序集需要打开文件本身

如果我手动将.config文件复制到卷影复制位置,效果会很好

此外,该第三方将配置文件称为“assemblyname.config”,而不是“assemblyname.dll.config”

我得到的错误是:

Unable to load configuration file: "\assemblyname.config".
在非ASP.NET应用程序(即普通Windows应用程序)中使用此第三方程序集时,效果非常好,因为它不执行卷影复制功能。只需直接从exe位置使用程序集和.config文件


有什么想法吗?虽然我认为这是一个相当常见的问题,但我一直无法找到解决方案。

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

它试图从配置文件中获取什么?@Jeroen,这是一个第三方程序集,我们无法控制它的操作。第一次尝试使用它时,我们得到一个错误,配置文件无法加载。当应用程序生成时,所有内容都在同一个文件夹中。注意:无需部署,这都是通过调试完成的,以防产生影响。在执行过程中,程序集将被卷影复制到其自己的文件夹(每个程序集位于其自己的文件夹中)。这是一个我认为我们无法控制的过程。我们通过名称(而不是路径)动态加载我们自己的第二个程序集,即assembly.load(“Assembly2”),它使用这个第三方程序集,但是在加载第二个程序集的同时加载了该程序集(通过项目引用),我们实际上并没有动态加载该程序集。