我曾经使用 .ASMX Web 服务,但我正在尝试迁移到 WCF,因为它是最新的东西,而且应该会更好。
无论如何,我想要做的非常简单:创建一个通过调用 Application.Clear() 清空 Application 集合的 Web 服务。在 ASMX Web 服务中,这真的很简单,因为 .ASMX Web 服务可以完全访问 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" %>
一切都编译得很好。但是,当我调用我的 web 服务时,FlushApplicationCache() 会抛出 NullReferenceException,因为 Application[] 为空。
有什么方法可以从 WCF 网络服务访问 Application[] 集合?还是我需要回到 .ASMX?