如何从WCF Web服务访问Application []集合

时间:2008-12-12 18:21:28

标签: web-services wcf application-state

我曾经使用.ASMX网络服务,但我正在尝试转移到WCF,因为它是最新的东西,它应该会更好。

无论如何,我想要做的事情真的很简单:创建一个通过调用Application.Clear()来清空Application集合的web服务。在ASMX Web服务中,这非常简单,因为.ASMX webservices可以完全访问Application []集合。但是,这在WCF中并不起作用。

所以,这是我的服务合同:

[ServiceContract]
public interface IFlusherServicePage
{
    [OperationContract]
    void FlushApplicationCache();
}

这是我的实施课程:

public class FlusherServicePage : Page, IFlusherServicePage
{
    public void FlushApplicationCache()
    {
        Application.Clear();
    }
}

这是我的.svc文件:

<%@ ServiceHost Language="C#" Debug="true" Service="FlusherServicePage" CodeBehind="~/App_Code/FlusherServicePage.cs" %>

一切都很好。但是,当我调用我的webservice时,FlushApplicationCache()会抛出NullReferenceException,因为Application []为null。

有没有办法从WCF Web服务访问Application []集合?或者我需要回到.ASMX吗?

1 个答案:

答案 0 :(得分:0)

即使WCF可以在与ASP.Net相同的AppDomain中运行,它也不会通过完整的ASP.Net管道。因此,HttpContext未设置,您无法访问该应用程序。 WCF服务已经与ASP.Net分离,预计将被托管在Server 2008的WAS中。