WCF服务OperationContext null

时间:2015-09-14 11:50:06

标签: c# wcf operationcontext

我有一个wcf服务。我将此类用于线程安全的全局变量:

public class WcfOperationContext : IExtension<OperationContext> {
private readonly IDictionary<string, object> items;

private WcfOperationContext() {
    items = new Dictionary<string, object>();
}

public IDictionary<string, object> Items {
    get { return items; }
}

public static WcfOperationContext Current {
    get {
        WcfOperationContext context = OperationContext.Current.Extensions.Find<WcfOperationContext>();
        if (context == null) {
            context = new WcfOperationContext();
            OperationContext.Current.Extensions.Add(context);
        }
        return context;
    }
}

在我的商务课程中,我有两种方法:

    public async Task<...> Method1(...){
       string refID = WcfOperationContext.Current.Items["RefID"].ToString();
       Method2();
...
    }

public async Task<int> Method2(){
    string refID = WcfOperationContext.Current.Items["RefID"].ToString();
...
}

在Method1中,我可以从WcfOperationContext获取refID。但是在Method2中有时(并非总是)我在这一行得到错误:

WcfOperationContext context = OperationContext.Current.Extensions.Find<WcfOperationContext>();

因为OperationContext.Current为null。

我怎样才能做到这一点?

0 个答案:

没有答案