HttpResponseMessage ne travaillant pas dans l'Api Web (.NET 4.5)
J'ai lu http://www.asp.net/web-api/overview/security/working-with-ssl-in-web-api et essayé d'utiliser le code de la page:
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);
}
}
}
Quand je construis je ne reçois pas une erreur, mais d'exécution donne cette erreur:
CS0012: Le type du Système".Net.Http.HttpRequestMessage " est défini dans une assemblée qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'Système.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
J'ai eu une référence à System.Net.Http dans mon dossier de références de mon projet. Si je regarde ses propriétés, il est dit Version 4.0.0.0 et de la Version d'Exécution de la 4.0.30319. Mon propriétés du projet dit du framework cible est .NET 4.5.
Mon IntelliSense dans VS2013 Express aussi ne veulent pas ramasser quelque chose à voir avec HttpResponseMessage ou HttpRequestMessage.
J'ai essayé de supprimer la référence et de le rajouter, mais en vain.
Toute aide serait extrêmement apprécié.
Vous devez vous connecter pour publier un commentaire.
Dans votre site web.config essayez d'ajouter:
compilation
élément dans entresystem.web
etassemblies
.Bien, je suis peut être en retard, mais juste au cas où quelqu'un d'autre faire face à ce problème.
Tout d'abord, vous avez besoin de trouver une chaîne de caractères:
Et font qu'il n'est pas auto-balise de fermeture comme ça:
Ensuite, ajoutez les assemblages de balise à l'intérieur de l'assemblée de l'information vous mansioned avant, de sorte qu'il ressemble à ceci:
Et la reconstruction de votre solution.
Jetez un oeil à ce lien.
J'avais essayé cette hautement suggéré de solution (j'ai trouvé ce que accepté de répondre à de nombreuses questions similaires ici dans)
Mais malheureusement, je n'avais aucune chance avec cette. Enfin, j'ai trouvé une solution qui a fonctionné pour moi et m'a sauvé la journée 🙂
References
dossier >Add Reference...
System.Net.Http
dans la liste des assemblées.Assurez-vous que la case à côté de
System.Net.Http
est cochée, puis cliquez surOK
.Essayez d'ajouter de l'assemblée de liaison dans le fichier de configuration
Eu le même problème, je viens de réinstaller le Système de la.Net.Http Package Nuget et cela a fonctionné.
Mais malheureusement, je n'avais aucune chance avec cette. Enfin, j'ai trouvé une solution qui a fonctionné pour moi et m'a sauvé la journée 🙂
Cliquez-droit sur le dossier Références > Ajouter une Référence...
Développez Assemblées sur le côté gauche de la fenêtre et sélectionnez-Cadre.
Faites défiler et sélectionnez Système.Net.Http dans la liste des assemblées. Assurez-vous que la case à côté du Système.Net.Http est cochée, puis cliquez sur OK.
Reconstruire le projet.
Celui-ci est fonctionne bien. Aller La Tête
J'ai fait tous les mentionnés ci-dessus les solutions pour mon problème de à:
Où .La réponse et le HttpResponseMessage & HttpStatusCode serait d'erreur avec
J'ai supprimé et re-ajout de la référence au Système.Net.Http, ajout de l'entrée dans le web.le fichier de configuration et également installé via Nuget package manager à l'aide de la commande:
et pourtant, il n'a pas de travail. En fin de compte j'ai fermé et ouvert les solutions avec tous ces bugs, et il a commencé à travailler.