[掌眼]解决Castle.ActiveRecord在ASP.NET或WCF环境中HttpContext.Current无效的错误

AR設定檔要指定threadinfotype,不指定的話,預設值是用WebThreadScopeInfo,是用 HttpContext.Current.Items 來存放 SesionScope,所以碰到與UI無關的執行緒,沒有 HttpContext.Current 程式就掛啦。

解决方案一:

1、检查“web.config”

<activeRecord isWeb="true" isDebug="false">

<config>
... ...
</config>

</activeRecord>

2、ActiveRecord加载配置代码修改为:

var source = ConfigurationManager.GetSection("activerecord") as InPlaceConfigurationSource;

source.ThreadScopeInfoImplementation = typeof(Castle.ActiveRecord.Framework.Scopes.HybridWebThreadScopeInfo);

ActiveRecordStarter.Initialize(assemblies, source);

解决方案二:

1、修改web.config,注意蓝色部分:

<activerecord isWeb="true" isDebug="true" threadinfotype="Castle.ActiveRecord.Framework.Scopes.HybridWebThreadScopeInfo,
Castle.ActiveRecord">
    <config>
      ... ... 
    </config>
  </activerecord>

解决方案三:

1、在web.config中加入:

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>

[掌眼]解决Castle.ActiveRecord在ASP.NET或WCF环境中HttpContext.Current无效的错误

时间: 2024-08-05 18:15:48

[掌眼]解决Castle.ActiveRecord在ASP.NET或WCF环境中HttpContext.Current无效的错误的相关文章

WCF 中HttpContext.Current为null的解决办法

解决WCF hosting IIS的环境中使HttpContext.Current不为NULL, 来我们传递每次请求中的Cookie 经过测试发现只要注意下面亮点就可以了: 1. 在hosting WCF的web.config中加入: <system.serviceModel>   <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/></system.serviceModel>

ORA-01084: OCI 调用中的参数无效 的解决方法

oracle的数据类型如果为NCLOB,当在C#当中三层架构使用参数形式的话,如果插入空值或空字符串就会出现“ORA-01084: OCI 调用中的参数无效”的错误,之前在网上看到别人都说用“ ”(也就是空格)代替空值或者空字符串,但是我是一个纠结体,一直觉得这样不好,虽然之前有个项目也是这样做,但今天发现了一种更好的解决方法,就是用DBNULL.value.如下: /// <summary>        /// 增加一条数据        /// </summary>     

Castle.ActiveRecord 多对多关系 引发的错误处理

在Castle.ActiveRecord 实体类中,如果两个对象有 “多对多” 关系,一般的做法是将其分解为 两个“一对多”关系,但有时引发了 “您要删除 或 引用 的对象#2在数据库中不存在”的异常 百思不得其解,同样的用法在“媒体引用”中一直都是正常的,为什么在“专题引用” 和“ Web栏目引用” 中就出现异常呢? 通过遍历代码发现了细微的差别: 在“媒体”的业务对象加载时,为了判断一个对象是否可以删除,常查询其被引用的 次数是多少,使用的方法是:DALMediaReference.Find

[掌眼]iOS / Android / java / node.js 通用的 AES256 加解密算法

example.m NSString *text = @"text"; NSString *key32 = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; NSString *encryptedData = [[data AES256EncryptWithKey:key32] base64EncodedStringWi

[掌眼]微信支付测试返回:access_control:not_allow或system:access_denied

转自:http://mp.weixin.qq.com/qa/index.php?qa=11634&qa_1=%E6%94%AF%E4%BB%98%E8%BF%94%E5%9B%9E%EF%BC%9Aaccess_control-not_allow&show=16550 感谢:乐游旅游 比如我的测试js支付的页面是 http://10.10.x.y/test/wxpay .首先要将"商户功能"->支付测试 下的"支付测试目录"改成  http:/

Castle.ActiveRecord多数据库配置

最近使用Castle.ActiveRecord框架,网上关于多数据支持的文章很少,因此有了这篇博文的产生. 开发工具VS2015,Sql Server2008R2 新建数据库,数据初始化脚本如下: 1 --新建数据库Castle.ActiveRecord.DB1 2 CREATE DATABASE [Castle.ActiveRecord.DB1]; 3 GO 4 5 USE [Castle.ActiveRecord.DB1] 6 GO 7 /****** Object: Table [dbo]

Castle ActiveRecord学习(一)

简介 来源:http://www.cnblogs.com/zxj159/p/4082987.html 一.Active Record(活动记录)模式 Active Record是业务逻辑层中(<企业应用架构模式>将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时它特别有用,它是一种以数据库驱动为主的框架模式. 通常,数据库中的每张表都对应一个业务对象.业务对象表示表中的一行,并且包含数据.行为以及持久化该对象的工具,此外还有添加新实例和查找对象集合所需的方法. 在A

[掌眼]Android WebView Long Press长按保存图片到手机

具体效果可见"掌眼"掌拍古玩江湖:http://bbs.guwanch.com private String imgurl = ""; /*** * 功能:长按图片保存到手机 */ @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); Me

[掌眼]UIWebView 显示正在加载网页

具体效果可见"掌眼"掌拍古玩江湖:http://bbs.guwanch.com - (void)webViewDidStartLoad:(UIWebView *)webView { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; } - (void)webViewDidFinishLoad:(UIWebView *)webView { [UIApplication sharedApplic