WCF Webサービスからのアプリケーション[]コレクションにアクセスする方法

StackOverflow https://stackoverflow.com/questions/363682

質問

私は.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から分離されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top