IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Erreur CS0246 au lancement en debug


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut Erreur CS0246 au lancement en debug
    Bonjour,

    Je développe un projet WEB API 2 et j'essaie de mettre en place une authentification "Basic" sur mon serveur REST. Je rencontre une erreur lorsque je lance mon appli en debug, et je n'en trouve pas la source. Pourriez-vous m'aider svp ?

    Code de ma classe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Web;
    using System.Web.Http;
     
    namespace CalypsoWebApplication.App_Code
    {
        //Classe qui ajoute au résultat Http un challenge disant que le serveur demande une authentification
        public class ResultWithChallenge : IHttpActionResult
        {
            private readonly System.Web.Http.IHttpActionResult next;
     
            public ResultWithChallenge(IHttpActionResult next)
            {
                this.next = next;
            }
     
            public async Task<HttpResponseMessage> ExecuteAsync(
                                        CancellationToken cancellationToken)
            {
                var res = await next.ExecuteAsync(cancellationToken);
                if (res.StatusCode == HttpStatusCode.Unauthorized)
                {
                    res.Headers.WwwAuthenticate.Add(
                       new AuthenticationHeaderValue("Basic", null));
                }
     
                return res;
            }
        }
    }
    Erreur au lancement :

    Message d'erreur du compilateur: CS0246: Le type ou le nom d'espace de noms 'HttpResponseMessage' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
    Erreur source:
    Ligne 22 : }
    Ligne 23 :
    Ligne 24 : public async Task<HttpResponseMessage> ExecuteAsync(
    Ligne 25 : CancellationToken cancellationToken)
    Ligne 26 : {
    Fichier source: e:\Users\mehin\Documents\Visual Studio 2013\Projects\Calypso\CalypsoWebApplication\App_Code\ResultWithChallenge.cs Ligne: 24

    En regardant sur https://msdn.microsoft.com/fr-fr/library/w7xf6dxs.aspx les différentes sources possibles de cette erreur, je ne vois toujours pas :
    - Framework cible .NET 4.5
    - Dans les références de mon projet, j'ai bien "System.Net.Http" qui cible System.NetNHttp.dll, version 4.0.0.0
    - En essayant de préfixer HttpResponseMessage par System.Net.http, j'ai la même erreur
    - Lorsque je clean et build ma solution dans Visual Studio 2013, il ne me sort aucune erreur. J'ai l'erreur uniquement lorsque j'exécute l'application (avec ou sans debug).
    - J'avais déjà eu la même erreur en essayant d'utiliser cette classe "HttpResponseMessage" lorsque je voulais ajouter des traces à mon appli. J'avais renoncé faute de pouvoir la résoudre mais là j'en ai vraiment besoin.

    Je ne vois pas quels détails ajouter, n'hésitez pas à demander. Merci d'avance

    Marc

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Citation Envoyé par Cram_N7 Voir le message
    - Dans les références de mon projet, j'ai bien "System.Net.Http" qui cible System.NetNHttp.dll, version 4.0.0.0
    Essayes de supprimer la référence et de la recréer
    "Hope for the best, but prepare for the worst."

  3. #3
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut
    Salut,

    Tu ne précises pas si tu testes sur la même machine que sur laquelle tu développes.

    Si tu déploies sur un serveur, il se peut que le serveur ne dispose pas des dll indiquées, il faut penser à le mettre à jour aussi.

    Ensuite, vérifie bien la version du framework dans laquelle ton projet se trouve et, dans le cas d'un serveur, la version du framework associé à l'application pool de ton site.

    En espérant avoir pu t'aider...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos premières réponses

    j'ai déjà essayé de supprimer et de remettre la référence, rien n'y fait.
    Je teste sur la machine où je développe, avec le serveur IIS Express embarqué dans Visual Studio 2013. J'ai l'impression que ce serveur utilise une version 2.0 de .NET alors que mon visual studio compile bien en 4.0, ce qui expliquerait que je n'aie pas d'erreur au build mais uniquement lorsque je déploie. Cependant je ne sais pas trop comment configurer le serveur IIS Express de VS2013, ni vérifier avec quelle version de .NET il fait tourner mon appli.

Discussions similaires

  1. Message d'erreur lors du lancement du debug
    Par Immobilis dans le forum Windows Phone
    Réponses: 1
    Dernier message: 17/09/2011, 13h33
  2. Désactiver le lancement du debug VS 2005
    Par truman dans le forum MFC
    Réponses: 7
    Dernier message: 10/03/2006, 17h15
  3. [VB.NET] erreur affichage page lancement de l'application
    Par lou87 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 24/02/2006, 15h29
  4. [debug VBA]Message erreur 2499 seulement en mode debug
    Par manujuggler dans le forum Access
    Réponses: 4
    Dernier message: 05/01/2006, 22h17
  5. [Compilateur] erreur sur le lancement de la compilation
    Par wickramben dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/05/2005, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo