CreateInstanceFrom и Unwrap не может загрузить сборку при запуске в IIS
У меня есть служба WCF, которая использует компоненты MEF для обработки различных типов запросов.
Служба создает новый домен приложения с установленными свойствами для теневого копирования компонентов MEF и позволяет их динамически удалять / заменять, а затем создает объект диспетчера подключаемых модулей, который использует платформу MEF для загрузки компонентов.
private void CreatePluginManager()
{
// creates a ShadowCopy of the MEF DLL's and any other DLL's in the ShadowCopyDirectories)
var setup = new AppDomainSetup
{
CachePath = @"C:\Websites\Sites\tstNewNrates\plugins",
ShadowCopyFiles = "true",
ShadowCopyDirectories = Code.Utilities.DefaultCarrierPluginDirectory,
ApplicationBase = Environment.CurrentDirectory
};
domain = AppDomain.CreateDomain("Host_AppDomain", AppDomain.CurrentDomain.Evidence, setup);
string AssemblyPath = Assembly.GetExecutingAssembly().Location;
pluginMgr = (RatesWebService.Code.CarrierPluginManager)domain.CreateInstanceFrom(AssemblyPath, typeof(RatesWebService.Code.CarrierPluginManager).FullName).Unwrap();
}
Этот код будет хорошо работать, когда я размещаю службу WCF локально в консольном приложении, но при развертывании в IIS 7.5 не удается найти общую библиотечную зависимость, которая используется как службой WCF, так и каждым из плагинов, даже если эта сборка расположена В этой же папке есть сервис и каждый из плагинов.
Локально создается теневая копия всех файлов. На IIS копия никогда не производится.