Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 故障排除系统。聚合异常_C# 4.0_Visual Studio 2015_Asp.net Core_Asp.net Web Api2_Iis Express - Fatal编程技术网

C# 4.0 故障排除系统。聚合异常

C# 4.0 故障排除系统。聚合异常,c#-4.0,visual-studio-2015,asp.net-core,asp.net-web-api2,iis-express,C# 4.0,Visual Studio 2015,Asp.net Core,Asp.net Web Api2,Iis Express,我需要另一双眼睛来看看这个。它快把我逼疯了 当运行连接到web api的控制台应用程序时,我会间歇性地得到一个“System.AggregateException” 我通过VisualStudio(IIS Express)在本地测试环境中执行此操作 如上所述,我有两个不同的应用程序在IIS Express上本地运行(两个不同的端口)。一个是控制台应用程序,另一个是web api。控制台应用程序连接到web api 如果有效与否,大约是50/50。50%的时间,它工作正常,并吐出预期的结果。但其他

我需要另一双眼睛来看看这个。它快把我逼疯了

当运行连接到web api的控制台应用程序时,我会间歇性地得到一个“System.AggregateException”

我通过VisualStudio(IIS Express)在本地测试环境中执行此操作

如上所述,我有两个不同的应用程序在IIS Express上本地运行(两个不同的端口)。一个是控制台应用程序,另一个是web api。控制台应用程序连接到web api

如果有效与否,大约是50/50。50%的时间,它工作正常,并吐出预期的结果。但其他50%的情况下,它会失败,错误如下。当它确实失败时,它总是立即出现,比如启动console应用程序2或3秒后

通过谷歌搜索和摆弄各种设置后,我知道这不是以下任何一种: 不是超时问题 不是防火墙问题

我尝试过在不同的点设置断点,但它从来没有真正揭示任何重要的东西

当它失败时,我得到的例外是:

mscorlib.dll中发生“System.AggregateException”类型的异常,但未在用户代码中处理

以下是内部异常: 无法建立连接,因为目标计算机主动拒绝连接

堆栈跟踪显示:

位于System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult、TransportContext和context) 位于System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) 位于System.Threading.Tasks.Task.ThrowifeException(布尔值IncludeTaskCanceledException) 位于System.Threading.Tasks.Task
1.GetResultCore(布尔waitCompletionNotification)
在System.Threading.Tasks.Task中
1.get_Result() 在c:\Users\xxx\Documents\VS2012\DrumBeats\BeatGenerator\BeatGeneratorMain.c.b_u2_0(任务
1 postTask)中的BeatGenerator.BeatGenerator\BeatGeneratorMain.cs:第72行
位于System.Threading.Tasks.ContinuationResultTaskFromResultTask
2.InnerInvoke() 在System.Threading.Tasks.Task.Execute()中

以下是错误行:

 var response = await http.PostAsJsonAsync("http://localhost:45321/api/drumcorp/beats/generate", drumbeat)
                .ContinueWith((postTask) => postTask.Result.EnsureSuccessStatusCode()); 
这是连接到API控制器的控制台应用程序:

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);
    }

}

}
这是web api控制器应用程序的相关部分:

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;  
    }
公共类鼓点//与控制台应用程序中的鼓点相同
{
public int StartBeat{get;set;}
公共int-EndBeat{get;set;}
公共int{get;set;}
}
[HttpPost(“api/drumcorp/beats/generate”)]
公共字符串PostMethodBeats([FromBody]鼓点鼓点)
{
string beatsChart=DrumBeatMaster.ReturnBeatsChart(DrumBeats.ChordId,DrumBeats.StartBeat,DrumBeats.EndBeat);
var mesg=“Beats Created

”; 返回mesg+beatsChart; }

DrumBeatMaster.ReturnBeatsChart只是一个简单的助手方法,它处理节拍并吐出字符串。

要了解什么是异常,您必须捕获聚合异常并像

试试看
{
//你的代码
} 
捕获(聚合异常聚集)
{ 
投掷agg.flatte();

}

我收到了相同的错误:mscorlib.dll中发生了“System.AggregateException”类型的异常,但未在用户代码中处理。您是否可以在github上签入解决方案。我可以编译来检查问题。看起来更像是资源获取的冲突