C# .net远程处理在非本地应用程序域中调用语音服务器工作流 我在Windows工作流基础上构建了一个微软语音服务器应用程序。应用程序管理其他子应用程序-用户调用,管理员加载包含正确应用程序的程序集并调用工作流
我面临的问题是语音服务或iis喜欢将程序集锁定到内存中,防止我覆盖dll。这使得调试应用程序非常困难,但一旦应用程序部署到生产环境中,这也是完全不可接受的 无法手动卸载单个特定程序集-程序集仅在其父应用程序域卸载时卸载 因此,我尝试使用.net远程处理创建一个新的应用程序域,将程序集加载到该域中,通过代理创建工作流对象,然后我希望传递该代理 这是我试图创建的类型的代码。它位于我尝试加载的程序集中:C# .net远程处理在非本地应用程序域中调用语音服务器工作流 我在Windows工作流基础上构建了一个微软语音服务器应用程序。应用程序管理其他子应用程序-用户调用,管理员加载包含正确应用程序的程序集并调用工作流,c#,.net,remoting,speech,C#,.net,Remoting,Speech,我面临的问题是语音服务或iis喜欢将程序集锁定到内存中,防止我覆盖dll。这使得调试应用程序非常困难,但一旦应用程序部署到生产环境中,这也是完全不可接受的 无法手动卸载单个特定程序集-程序集仅在其父应用程序域卸载时卸载 因此,我尝试使用.net远程处理创建一个新的应用程序域,将程序集加载到该域中,通过代理创建工作流对象,然后我希望传递该代理 这是我试图创建的类型的代码。它位于我尝试加载的程序集中: public class typeContainer : MarshalByRefObject {
public class typeContainer : MarshalByRefObject
{
public static Type workflowType = typeof(mainWorkflow);
}
下面是管理器中的代码:
AppDomain newDomain = AppDomain.CreateDomain("newdomain");
System.Runtime.Remoting.ObjectHandle oh = newDomain.CreateInstanceFrom(
@"FullPathToAssembly",
"namespace.typeContainer");
object unwrapped = oh.Unwrap();
所以问题是,我怎样才能访问管理器中的typeContainer.workflowType?哦,“展开”会产生一种“透明氧化剂”。简单地说,我试图在上面做的是不可能的。简而言之,跨AppDomains发送类型会导致将程序集注入当前域。有关替代解决方案,请参见