4

WebApiのホスティングがIISの場合、HttpContextにアクセスでき、itemsコレクションを使用して単一のHTTP要求のオブジェクトを格納できます。

セルフホスティングの場合、HttpContextがなくなるので、単一のリクエストのオブジェクトを保存するために何を使用できますか?

4

2 に答える 2

6

明らかに、セルフホストにはSystem.WebのHttpContextに直接相当するものはありません。

ただし、単一のリクエストの情報を開始する場合は、各HttpRequestMessageで<string、object>のディクショナリ(http://msdn.microsoft.com/en-us/library/system.net.http)が公開されPropertiesます。 httprequestmessage.properties.aspxは、ハンドラー、フィルター、バインダーなどの間でデータを転送するために使用できます。

于 2012-09-12T22:15:09.527 に答える
0

セルフホスト(IISは関与していません)の場合、タイプから派生した属性クラスを構築できますSystem.Web.Http.Filters.ActionFilterAttribute(アセンブリsystem.web.http .net 4.0+内)。次に、OnActionExecutedメソッドを次のようにオーバーライドします。

public class NoResponseCachingAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        if (actionExecutedContext.Response.Headers.CacheControl == null)
            actionExecutedContext.Response.Headers.CacheControl = new System.Net.Http.Headers.CacheControlHeaderValue();

        actionExecutedContext.Response.Headers.CacheControl.NoCache = true;
        actionExecutedContext.Response.Headers.CacheControl.NoStore = true;
        actionExecutedContext.Response.Headers.CacheControl.MustRevalidate = true;

        base.OnActionExecuted(actionExecutedContext);
    }
}

このアプローチは私のアプリケーションで機能しました。

于 2013-02-08T15:53:29.557 に答える