public static string IsolateCallV1(PageContentHandler pHandler)
{
string name = Guid.NewGuid().ToString("N");
var domain = AppDomain.CreateDomain(name);
try
{
var proxy = (IAppEntry)domain.CreateInstanceAndUnwrap("AnfleCrawler.Common", "AnfleCrawler.Common.IsolateProxy");
string ret = (string)proxy.DoEntry(pHandler);
if (ret == null)
{
throw new InvalidOperationException("IsolateProxy");
}
return ret;
}
finally
{
//AppDomain不能即时卸载?不能在IDisposable中卸载? //App.LogInfo("IsolateCollect Unload {0}@{1}", domain.FriendlyName, AppDomain.CurrentDomain.FriendlyName);
//AppDomain.Unload(domain);
new JobTimer(state =>
{
try
{
var d = (AppDomain)state;
//if (d.IsFinalizingForUnload())
//{
// return;
//}
App.LogInfo("IsolateCollect Unload {0}", d.FriendlyName);
AppDomain.Unload(d);
}
catch (Exception ex)
{
App.LogError(ex, "IsolateCollect");
}
}, DateTime.Now.AddSeconds(20d)).Start(domain);
}
}

C# Sandboxer的更多相关文章

随机推荐

  1. php中高级基础知识点

    1. 基本知识点 HTTP协议中几个状态码的含义:1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码   说明 100   (继续) 请求者应当继续提出请求. 服务器返回此代码 ...

  2. Rocketmq-尝试理解

    普通的信息发送和消费 首先要启动nameserver和broker,nameserver是一个几乎无状态节点.broker分为master和slave,master和slave的对应关系通过指定相同的 ...

  3. android widget 点击进入应用

    package com.ljapps.wifix.ui.provider; import android.app.PendingIntent; import android.appwidget.App ...

  4. association ,collection

    mybatis 出现这个错误Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 2 ...

  5. Unity5.1 新的网络引擎UNET(十五) Networking 引用--上

    http://blog.csdn.net/u010019717/article/details/46993697 孙广东  2015.7.21 本节提供了与网络系统一起使用的组件的详细信息. 1.Ne ...

  6. apt-get remove, apt-get autoremove和aptitude remove的区别

    这篇文章的图片链接发生了问题,无法正常查看图片,所以我在CSDN转载一下,特此声明. apt-getremove的行为我们很好理解,就是删除某个包的同时,删除依赖于它的包,例如:A依赖于B, B依赖于 ...

  7. PHP框架学习错误总结

    错误一: Fatal error: “Uncaught exception 'Zend_Controller_Response_Exception' with message 'Cannot send ...

  8. memcached 学习 1—— memcached+spring配置

    memcached 学习目录: memcached 学习 1—— memcached+spring配置 这几天自己搭建项目环境,解决问题如下: 有关常见的配置这里没有列出,中间遇到的搭建问题比较顺利g ...

  9. input覆盖select实现select可写可选择

    1.有时需要一个select选择框,但是对select选择框希望是既可以选择也可以进行输入.下边的代码就是在select选择框上放了一个input框,覆盖在select上面.实现伪装的select效果 ...

  10. 所思所想 关于asp.net界面业务分离

    1.体会:使用ASP.NET控件来做前段是有很大的局限性的 2.使用拼接HTML的方式来写代码虽然不符合模式,但是有很大的灵活性 3.如果使用拼接字符串的方式来生成前台的代码,使用NV的话完全可以实现 ...