私はhttp://www.asp.net/web-api/overview/security/working-with-ssl-in-web-apiを読み、そのページからコードを使用してみました:私は、私はエラーを取得しないビルドするHttpResponseMessageのWeb APIで動作していない(.NET 4.5)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Http.Filters;
using System.Web.Http.Controllers;
public class RequireHttpsAttribute : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
{
actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
{
ReasonPhrase = "HTTPS Required"
};
}
else
{
base.OnAuthorization(actionContext);
}
}
}
を、しかし、実行時には、このエラーを与えます:
CS0012: The type 'System.Net.Http.HttpRequestMessage' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
私のプロジェクトの参照フォルダにSystem.Net.Httpへの参照があります。私がそのプロパティを見ると、バージョン4.0.0.0とランタイムバージョン4.0.30319があります。私のプロジェクトプロパティは、ターゲットフレームワークは.NET 4.5であると言います。
VS2013 ExpressのMy IntelliSenseは、HttpResponseMessageまたはHttpRequestMessageと何も関係がありません。
私は参照を削除して再追加しようとしましたが、役に立たなくなりました。
ご協力いただければ幸いです。
'system.web'と' assemblies'の間の 'compilation'要素を忘れないでください。 –