Раньше я пользовался веб-сервисами .ASMX, но я пытаюсь перейти на WCF, потому что это самая последняя новинка, и она должна быть лучше.
В любом случае, то, что я хочу сделать, действительно очень просто: создать веб-сервис, который очищает коллекцию Application, вызывая Application.Clear (). В веб-службе ASMX это действительно очень просто, поскольку веб-службы .ASMX имеют полный доступ к коллекции 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" %>
Все компилируется нормально. Однако когда я вызываю мой веб-сервис, FlushApplicationCache () генерирует исключение NullReferenceException, поскольку Application [] имеет значение null.
Есть ли способ получить доступ к коллекции Application [] из веб-службы WCF? Или мне нужно вернуться к .ASMX?