WCF Webサービスからのアプリケーション[]コレクションにアクセスする方法
-
21-08-2019 - |
質問
私は.asmxというWebサービスを使用するために使用されるが、私はそれが最新の最新のものだからWCFへ移動しようとしている、より良いことになってます。
とにかく、私はやりたいと思ってることは本当に簡単です:Application.Clear()を呼び出すことによって、アプリケーションのコレクションを空にWebサービスを作成します。 .asmxファイルのWebサービスは、アプリケーション[]コレクションへのフルアクセスを持っているので、ASMX Webサービスでは、これは、本当に簡単です。しかし、これは本当に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サービスを呼び出すときに、アプリケーション[]がnullであるため、しかし、FlushApplicationCacheは()、とNullReferenceExceptionをスローします。
WCFのWebサービスからのアプリケーション[]コレクションにアクセスする方法はありますか?それとも私が.asmxファイルに戻る必要があるのですか?
解決
WCFは、ASP.Netと同じアプリケーションドメインで実行することができたとしても、それは完全なASP.Netパイプラインを経由しません。そのため、のHttpContextが設定されていない、あなたは、アプリケーションに取得することはできません。 WCFサービスは、サーバー2008のWASでホストされているのを見越してASP.Netから分離されています。
所属していません StackOverflow