我曾经使用.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吗?
答案 0 :(得分:0)
即使WCF可以在与ASP.Net相同的AppDomain中运行,它也不会通过完整的ASP.Net管道。因此,HttpContext未设置,您无法访问该应用程序。 WCF服务已经与ASP.Net分离,预计将被托管在Server 2008的WAS中。