wake-up-neo.net

HttpClient in ASP.NET 5.0 nicht gefunden?

Wenn ich versuche, meine Site mit einer Instanz von System.Net.HttpClient zu kompilieren, wird VS2015 und asp.net 5 angezeigt:

Der Typ- oder Namespace-Name 'HttpClient' konnte nicht gefunden werden (fehlt Ihnen Eine using-Direktive oder eine Assemblyreferenz?)

Wenn ich über dem fehlerhaften Code schwebe, sehe ich:

"WebApplication1.ASP.NET 5.0 - Available"
"WebApplication1.ASP.NET Core 5.0 - Not Available"

Ich habe 2 Frameworks in meiner project.json-Datei:

"frameworks": {
    "aspnet50": { },
    "aspnetcore50": { }
},

Ich gehe davon aus, dass einer von ihnen dafür verantwortlich ist, dass er keine Vollversammlung hat, aber ich weiß nicht wirklich, wie er sie reparieren soll oder wie das funktioniert.

Wie kann ich die Site mit HttpClient ausführen lassen, anstatt Fehler zu werfen? Die beanstandete Methode ist unten aufgeführt:

private async Task<string> GetStringFromUri()
{
    using (var httpClient = new HttpClient())
    {
        result = await httpClient.GetStringAsync(
        new Uri("http://baconipsum.com/api/?type=meat-and-filler"));

        viewModel= result;
        return viewModel;
    }
}
22
damccull

Endlich hat alles geklappt. @yuval hat mich mit der Antwort auf das Hinzufügen von Abhängigkeiten auf den richtigen Weg gebracht und darauf hingewiesen, dass die Klasse auf Github vorhanden ist. Weitere Recherchen führten dazu, dass ich herausfand, dass die Klasse noch nicht in der Preview-Version enthalten war. Ich musste dieses Nuget-Repo zu meinem Projekt hinzufügen: https://www.myget.org/gallery/aspnetvnext

In diesem Repo sind nächtliche Builds der asp.net vnext-Nuget-Pakete enthalten, die die gewünschte Klasse enthielten. Durch das Hinzufügen der folgenden Zeile zu meinem Hauptabhängigkeitsabschnitt und zu beiden Frameworks-Abhängigkeitsabschnitten funktionierte dies für mich: "Microsoft.Net.Http.Client": "1.0.0.0-rc1-10049"

"dependencies": {
    [...],
    "Microsoft.Net.Http.Client": "1.0.0.0-rc1-10049"
},
"frameworks": {
    "aspnet50": {
        "dependencies": {
            "Microsoft.Net.Http.Client": "1.0.0-rc1-10049"
        }
    },
    "aspnetcore50": {
        "dependencies": {
            "Microsoft.Net.Http.Client": "1.0.0-rc1-10049"
        }
    }
} 
15
damccull

Ich bin heute mit dem gleichen Problem konfrontiert und die Lösung wurde 2016 etwas einfacher.

Es ist nicht mehr erforderlich, ein neues Nuget-Repository hinzuzufügen. 

Wenn Sie System.Net.Http (aktuelle Version 4.0.1-beta-23516) hinzufügen, wird derselbe Fehler immer noch angezeigt, wenn Sie ein CLR sowie eine Core-Framework-Version anvisieren. Kopieren Sie daher die Abhängigkeit in die Abhängigkeitsliste des dnxcore-Frameworks nach Lass deinen Code kompilieren.

Vor:

"frameworks": {
    "dnx451": { 
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
     },
    "dnxcore50": { }
  }

Nach dem:

"frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Net.Http": "4.0.1-beta-23516"
      }
    }
  }
11
Marco

Sie müssen Ihrem Nuget-Paketmanager eine neue Quelle hinzufügen ( https://www.myget.org/F/aspnetvnext ) und dann Ihrer project.json-Datei Abhängigkeiten hinzufügen. Beide für dnx451 und dnxcore50:

{
   "frameworks": {
       "dnx451": {
         "frameworkAssemblies": {
             "Microsoft.Net.Http.Client": "1.0.0-beta3-10053"
              }
         },
         "dnxcore50": {
            "frameworkAssemblies": {
               "Microsoft.Net.Http.Client": "1.0.0-beta3-10053"
               }
          }
 }

Es ist als Teil des ASP.Net xNext-Pakets implementiert, da es auf github lautet:

Vollständig verwaltete HttpMessageHandler-Implementierung basierend auf Sockets.

Dieses Projekt ist Teil von ASP.NET vNext. Sie können Beispiele finden, Dokumentation und Erste Schritte für ASP.NET vNext unter das Heimatrepo.

Eine vollständige Komplettlösung finden Sie hier

6
Yuval Itzchakov

Ich hatte heute Probleme bei der Suche nach RC1:

Für jeden, der diese Frage von dort findet, ist HttpClient jetzt im System.Net.Http-Namespace.

4
Kevin Stricker

Fügen Sie dies einfach zu Ihrem project.json hinzu.

"dependencies": {
    ...
    "Microsoft.Net.Http": "2.2.7-beta"
},

oder was auch immer die neueste Version ist.

3
Alkasai

Es gab einen fehlenden Link in diesem Thread für mich .... Sie müssen die https://www.myget.org/gallery/aspnetvnext NuGet-Quelle hinzufügen, aber die eigentliche URL des NuGet-Feeds lautet ' https://www.myget.org/F/aspnetvnext/ '. Sobald Sie das als Nugget-Quelle haben, wird der Rest zum Leben erweckt.

Zum Zeitpunkt des Schreibens (17. Juni 2015) lautet die Version "Microsoft.Net.Http.Client": "1.0.0-beta3-10053".

Sie müssen auch den aktualisierten Abschnitt "Frameworks" von Matt DeKreys am 7. Juni verwenden (dnx451 und dnxcore50).

0
Martin Kearn