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

解决WCF hosting IIS的环境中使HttpContext.Current不为NULL, 来我们传递每次请求中的Cookie

经过测试发现只要注意下面亮点就可以了:

1. 在hosting WCF的web.config中加入:

<system.serviceModel>
   <serviceHostingEnvironment
aspNetCompatibilityEnabled="true"/>
</system.serviceModel>

2. 在每个Service的定义(注意不是Contract,
不过就算加在Contract上编译是也会报错)上加上下面Attribute:

[AspNetCompatibilityrequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]

再测试看看, 发现WCF hosting IIS的程序中也可以使用HttpContext.Current了.

时间: 2024-11-07 07:36:10

WCF 中HttpContext.Current为null的解决办法的相关文章

关于SQL语句中SUM函数返回NULL的解决办法

SUM 是SQL语句中的标准求和函数,如果没有符合条件的记录,那么SUM函数会返回NULL. 但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理: SELECT COALESCE(SUM(name),0) FROM person WHERE id > 0   行了,这下就不用费事去处理返回结果是否为NULL的情况了. COALESCE 函数的意思是返回参数列表中第一个为空的值,该方法允许传入多个参数,该函数也是SQL中的标准

springboot的拦截器中注入redisTemplate为null的解决办法

原因:拦截器加载于IOC之前,所以这个时候注入RedisTemplate时是null 在SpringBoot配置类中做出如下调整,将自定义拦截器也加入到配置中,在拦截器执行的时候实例化拦截器Bean 原文地址:https://www.cnblogs.com/zj-mxcz/p/12422953.html

tp中对json_decode返回null的解决办法

json_decode要求的字符串比较严格:(1)使用UTF-8编码(2)不能在最后元素有逗号(3)不能使用单引号(4)不能有\r,\t,如果有请替换 tp框架中的I函数默认对post的参数进行了htmlspecialchars过滤 'DEFAULT_FILTER' => 'htmlspecialchars', // 默认参数过滤方法 用于I函数... string(23) "{"test":"url",'attr':1}" string(

SQL中SUM函数返回NULL的解决办法

1.oracel:使用NVL()函数: select nvl(sum(num),0) from table 2.mysql:使用IFNULL()函数 select ifnull(sum(num),0) from table

[掌眼]解决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>... .

解决Asp.net Mvc中使用异步的时候HttpContext.Current为null的方法

在项目中使用异步(async await)的时候发现一个现象,HttpContext.Current为null,导致一系列的问题. 上网查了一些资料后找到了一个对象: System.Threading.SynchronizationContext (提供在各种同步模型中传播同步上下文的基本功能.), 跟踪代码后发现 SynchronizationContext.Current 返回的是一个叫 System.Web.LegacyAspNetSynchronizationContext 的内部类对象

异步任务,HttpContext.Current为null解决办法

最近在开发一个后台管理系统项目,为了提高登录的速度,就把记录登录日志放到一个异步任务里面. Action taskAction = () => { SaveLog(); }; Task task = new Task(taskAction); task.Start(); 有一段时间日志记录是正常的,突然有一天就不work了,本地调试也能重现这个错误,是System.Web.HttpContext.Current为null造成的,获取不了当前的用户名. 在网上搜了一下,确实很多用户遇到了,有推荐缓

ASP.NET多线程下使用HttpContext.Current为null解决方案

多线程或者异步调用中如何访问HttpContext? 前面我还提到在APM模式下的异步完成回调时,访问HttpContext.Current也会返回null,那么此时该怎么办呢? 答案有二种:1. 在类型中添加一个字段来保存HttpContext的引用(异步开始前).2. 将HttpContext赋值给BeginXXX方法的最后一个参数(object state) 建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用. 引用: 不错的文章:http://www.cnblogs.c

http流请求时,被请求站点HttpContext.Current为null?

我负责运维一个短信接口站点sms.调用上游短信供应商下发短信后,他们会给我们推送发送报告.报告是类似DELIVRD.DI:9432这样的码.为了方便识别,系统里有一个报告码与其描述的关系,一开始是写死在程序里的.这样的弊端是,后期每次添加了这个映射关系后,都要更新网站程序,增大了维护成本.为了降低维护成本,我做了改进方案.将这个映射关系保存到一个文本文件ReportCodeMapper.txt里,提供一个页面来允许修改这个文件的内容. 对于使用的逻辑,声明一个静态的Dictionary,初始化时