Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net远程处理在非本地应用程序域中调用语音服务器工作流 我在Windows工作流基础上构建了一个微软语音服务器应用程序。应用程序管理其他子应用程序-用户调用,管理员加载包含正确应用程序的程序集并调用工作流_C#_.net_Remoting_Speech - Fatal编程技术网

C# .net远程处理在非本地应用程序域中调用语音服务器工作流 我在Windows工作流基础上构建了一个微软语音服务器应用程序。应用程序管理其他子应用程序-用户调用,管理员加载包含正确应用程序的程序集并调用工作流

C# .net远程处理在非本地应用程序域中调用语音服务器工作流 我在Windows工作流基础上构建了一个微软语音服务器应用程序。应用程序管理其他子应用程序-用户调用,管理员加载包含正确应用程序的程序集并调用工作流,c#,.net,remoting,speech,C#,.net,Remoting,Speech,我面临的问题是语音服务或iis喜欢将程序集锁定到内存中,防止我覆盖dll。这使得调试应用程序非常困难,但一旦应用程序部署到生产环境中,这也是完全不可接受的 无法手动卸载单个特定程序集-程序集仅在其父应用程序域卸载时卸载 因此,我尝试使用.net远程处理创建一个新的应用程序域,将程序集加载到该域中,通过代理创建工作流对象,然后我希望传递该代理 这是我试图创建的类型的代码。它位于我尝试加载的程序集中: public class typeContainer : MarshalByRefObject {

我面临的问题是语音服务或iis喜欢将程序集锁定到内存中,防止我覆盖dll。这使得调试应用程序非常困难,但一旦应用程序部署到生产环境中,这也是完全不可接受的

无法手动卸载单个特定程序集-程序集仅在其父应用程序域卸载时卸载

因此,我尝试使用.net远程处理创建一个新的应用程序域,将程序集加载到该域中,通过代理创建工作流对象,然后我希望传递该代理

这是我试图创建的类型的代码。它位于我尝试加载的程序集中:

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发送类型会导致将程序集注入当前域。有关替代解决方案,请参见