Ich brauche ein anderes Paar Augen, um sich das anzusehen. Es macht mich verrückt.Fehlersuche System.AggregateException
Ich erhalte zeitweilig eine 'System.AggregateException', wenn ich eine Konsolenanwendung starte, die eine Verbindung zu einer Web-API herstellt.
Ich mache dies in einer lokalen Testumgebung durch Visual Studio (IIS Express).
Wie gesagt, ich habe zwei verschiedene Anwendungen lokal auf IIS Express (2 verschiedene Ports) ausgeführt. Eine ist eine Konsolen-App und die andere ist eine Web-API. Die Konsolen-App verbindet sich mit der Web-API.
Es ist ungefähr 50/50, wenn es funktioniert oder nicht. In 50% der Fälle funktioniert es gut und spuckt die erwarteten Ergebnisse aus. Aber die anderen 50% der Zeit, schlägt es mit den Fehlern fehl. Wenn dies fehlschlägt, geschieht dies immer sofort, etwa 2 oder 3 Sekunden nach dem Start der Konsolen-App.
Nach einigen googeln und um mit verschiedenen Einstellungen Hantieren, weiß ich es auch nicht von diesen ist: kein Timeout Problem keine Firewall-Problem
ich Haltepunkte an verschiedenen Punkten habe versucht Einstellung, aber es ist wirklich nie enthüllt alles Wichtige.
Die Ausnahme, die ich erhalte, wenn es nicht ist:
Eine Ausnahme vom Typ ‚System.AggregateException‘ in mscorlib.dll aufgetreten war aber nicht
Hier ist die innere Ausnahme in Benutzercode behandelt: Nein Verbindung hergestellt werden kann, da der Zielcomputer aktiv http://localhost:45321 verweigert
der Stack-Trace zeigt an:
bei System.Net.HttpWebRequest.EndGetRequestStream (I AsyncResult asyncResult, TransportContext & Kontext) bei System.Net.Http.HttpClientHandler.GetRequestStreamCallback (IAsyncResult ar) bei System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions) bei System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task
1.get_Result() bei BeatGenerator.BeatGeneratorMain. <> c.b__2_0 (Aufgabe 1 postTask) in C:\Users\xxx\Documents\VS2012\DrumBeats\BeatGenerator\BeatGeneratorMain.cs:line 72 at System.Threading.Tasks.ContinuationResultTaskFromResultTask
2.InnerInvoke() bei System.Threading.Tasks.Task.Execute()
Hier ist die Fehlerzeile:
var response = await http.PostAsJsonAsync("http://localhost:45321/api/drumcorp/beats/generate", drumbeat)
.ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode());
Dies ist die Konsole-Anwendung, die verbindet API-Controller:
public class DrumBeats
{
public int StartBeat { get; set; }
public int EndBeat { get; set; }
public int ChordId { get; set; }
}
public class BeatGeneratorMain
{
static void Main(string[] args)
{
Generate().Wait();
}
private static async Task Generate()
{
var drumbeat = new DrumBeats();
drumbeat.ChordId = 122;
drumbeat.StartBeat = 2;
drumbeat.EndBeat = 4;
var creds = new NetworkCredential("testUser", "xxxx", "xxx"); //username, pw, domain
var handler = new HttpClientHandler { Credentials = creds };
using (var http = new HttpClient(handler))
{
http.Timeout = TimeSpan.FromMinutes(10);
var response = await http.PostAsJsonAsync("http://localhost:45321/api/drumcorp/beats/generate", drumbeat)
.ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode());
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
}
Dies ist der entsprechende Abschnitt der Bahn api Controller App:
public class DrumBeats //same as in console app
{
public int StartBeat { get; set; }
public int EndBeat { get; set; }
public int ChordId { get; set; }
}
[HttpPost("api/drumcorp/beats/generate")]
public string PostMethodBeats([FromBody] DrumBeats drumbeat)
{
string beatsChart = DrumBeatMaster.ReturnBeatsChart(DrumBeats.ChordId, DrumBeats.StartBeat, DrumBeats.EndBeat);
var mesg = "<b>Beats Created</b><br /><br /> ";
return mesg + beatsChart;
}
DrumBeatMaster.ReturnBeatsChart ist nur eine einfache Hilfsmethode, die die Beats verarbeitet und eine Saite ausspuckt.
abgeflacht werfen: Eine Ausnahme des Typs ‚System.AggregateException‘ aufgetreten in mscorlib. dll, wurde aber nicht im Benutzercode – SkyeBoniwell
behandelt. Ist es möglich, dass Sie die Lösung auf github einchecken? Ich kann kompilieren, um das Problem zu überprüfen. Scheint mehr wie Konflikt der Beschaffung von Ressourcen – lazy