C# .NET 6.0 RazorPages 检查来自 MTConnect 代理的 HttpStatusCode

问题描述 投票:0回答:0

我一直致力于开发一个功能性的 C#/JavaScript/CSS/ 和 HTML 地图,在找到 SmartBoxes 时可以轻松导航,它几乎完成了..

我一直致力于开发一个功能性的 C#/JavaScript/CSS/ 和 HTML 地图,在找到 SmartBoxes 时可以轻松导航,它几乎完成了。我实现了一个 JS 库传单,以帮助实现地图并帮助实现功能。我的目标是在我的 web 应用程序的 index.cshtml 页面中使用 C# 和 JavaScript,从多个不同的 URL 中提取数据并更改地图中圆圈的填充颜色以告知天气代理正在运行或未运行(绿色表示工作, 橙色代表 agent down.. 我用 JavaScript 构建了一个代理服务器来帮助测试我的代码(当网站地图完成后我很可能不会使用代理)。如果 (Agent)URL 不起作用,那么我的目标是让我的圆圈填充颜色变成橙色。我不确定我的方向是否正确,但我一直在使用和引用其他堆栈溢出论坛,这是我的资源,它们似乎很有帮助。检查 HttpStatusCode 是否代表成功或失败 EnsureSuccessStatusCode 的使用和它抛出的 HttpRequestException 的处理 我在我的代码中实现了一种处理异常的方法,因为我在上面使用的资源虽然很有帮助,但它们似乎生成了一个很难调试的异常,我找到了一种使用此资源调试它的方法。 https://www.appsloveworld.com/csharp/100/891/http-client-exception-handling-in-asp-net-core

我希望能够让我的应用程序显示橙色圆圈,以表明代理已关闭且无法正常工作,而不是让我的应用程序出现两个异常。我对我的应用程序进行了编程,如果 HttpStatusCode 成功则显示绿色,如果代理未运行则显示橙色(仍然没有按我希望的方式 100% 工作)。就像我说的那样设法调试并摆脱了“HttpRequestException 和 SocketException”和让我的应用程序运行而不必运行代理,但我的第一个“var circle”似乎没有显示。当我在 VS 终端中执行 Node proxy.js 时运行代理时,它似乎只工作正常......在这里是我下面的代码,其中我得到了不破坏我的应用程序的例外情况。

@using (var client = new HttpClient()) {

try
{
     var response = await client.GetAsync("http://localhost:3000/api");

        if (response.IsSuccessStatusCode){
    <script>
        var circle = L.circle([45.50, -79.51], {
            color: 'black',
            fillColor: '#00FF00',
            fillOpacity: 0.9,
            radius: 7500
        }).addTo(map);
    </script>
        }

   if (response.StatusCode == HttpStatusCode.NotFound || response == null)
{
    // Handle failure
        <script>
        var circle = L.circle([45.50, -79.51], {
            color: 'black',
            fillColor: '#ff6600',
            fillOpacity: 0.9,
            radius: 7500
        }).addTo(map);
        </script>
    }
}
catch (HttpRequestException requestException)
{
    if(requestException.InnerException is WebException webException && webException.Status == WebExceptionStatus.NameResolutionFailure)
    throw;
}
@*catch (SocketException ex)
{

    throw;
}*@

// 我尝试过的另一种方法在我的程序中注释掉,同时在 Visual Stu 中测试上述方法如下。 // 同样,我在使用这种方法时遇到了麻烦,因为这是需要 proxy.js 文件的方法,即我开发为在 VS 的终端内运行,否则屏幕会因 Socket 异常和 HttpRequest 异常错误而亮起。这是因为我当然没有以正确的方式处理异常。当我尝试/捕获异常时,我仍然收到异常错误。也许我已经筋疲力尽并且正在以这种方法错误的方式实施它。

 var response = await client.GetAsync("http://localhost:3000/api");
      if (response.IsSuccessStatusCode)
     {
         <script>
             var circle = L.circle([45.50, -79.51], {
                 color: 'black',
                 fillColor: '#00FF00',
                 fillOpacity: 0.9,
                 radius: 7500
             }).addTo(map);
         </script>
     }
     else
     {
    // Handle failure
    <script>
        var circle = L.circle([45.50, -79.51], {
            color: 'black',
            fillColor: '#ff6600',
            fillOpacity: 0.9,
            radius: 7500
        }).addTo(map);
    </script>
}

catch (HttpRequestException 请求异常) { 如果(requestException.InnerException 是 WebException webException && webException.Status == WebExceptionStatus.NameResolutionFailure) { 扔; } } 赶上(SocketException前) {

    throw;
}

// 我知道这很多..我希望有人能帮我解决这个项目快完成了..我会尽快回复..谢谢.

javascript c# httprequest razor-pages mtconnect
© www.soinside.com 2019 - 2024. All rights reserved.