当前位置: 首页 > 知识库问答 >
问题:

使用 HttpClient 在 Azure 函数中给出“脚本编译失败”

雷晋
2023-03-14

我在编写Azure函数时遇到了一个奇怪的问题。我使用HttpClient从Web服务获取数据,但当我运行该函数时,我得到“脚本编译失败”。为了解决这个问题,我编写了一个新的Azure函数,在其中我只检索HTML响应:

using System;
using System.Net.Http;
using System.Threading.Tasks;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    CallHttpClient().Wait;
}

public static async Task CallHttpClient()
{
    using (var httpClient = new HttpClient())
    {
        var str = await httpClient.GetStringAsync("https://www.google.com");
        log.Info(str);
    }
}

我正在使用 Azure 门户。调用日志给我这个错误:

执行函数时异常:Functions.TestFunctionAsync

Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while execute function: Functions.TestFunctionAsync ---

共有1个答案

丌官子安
2023-03-14

您的示例中有两个编译错误:在等待之后缺少(),并且没有将log作为参数传递给CallHttpClient

您根本不应该使用< code>Wait(),而应该让< code>Run异步运行。

这是一个正确的版本:

public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
    await CallHttpClient(log);
}

public static async Task CallHttpClient(TraceWriter log)
{
    using (var httpClient = new HttpClient())
    {
        var str = await httpClient.GetStringAsync("https://www.google.com");
        log.Info(str);
    }
}
 类似资料:
  • 此代码编译没有任何问题Qt5.2.0 MSVC2012: 但是如果我试着用Qt5编译它。2.0使用gcc时,我遇到以下错误: ../_测试夹具B/主。cpp:在函数“int main(int,char**)”中:/_测试夹具B/主。cpp:14:5:警告:lambda表达式仅适用于-std=c 11或-std=gnu 11[默认情况下启用]});^/_测试夹具B/主。cpp:14:6:错误:调用'

  • 我正在使用jenkins进行构建,但每次运行构建时都会出现错误并失败? 以下是错误: 致命:hudson/tasks/Mailer$UserProperty java。lang.ClassNotFoundException:哈德逊。任务。詹金斯的Mailer$UserProperty 。util。AntClassLoader。jenkins的findClassInComponents(AntCla

  • 我可以使用azure门户将一个web应用程序添加到虚拟网络中,以便在其上托管的各种服务之间进行通信。不过,我已经通过Powershell编写了环境中的所有其他内容的脚本,并且也希望自动化WebApp/VNET集成。 到目前为止,我已经阅读了以下文章: https://azure.microsoft.com/en-gb/documentation/articles/web-sites-integra

  • 我是Cassandra的新手,我正在尝试创建一个用户定义的聚合,但一直停留在函数创建上。 表中数据为- 我正在编写的函数将计算特定主机的表中有多少行。如果我为聚合提供test_host1,理想的结果将是3。 在下面找到函数的代码- 在cqlsh上执行此操作时,我得到以下错误- InvalidRequest:code=2200[无效查询]message=“无法从Java源代码org.apache.c

  • 问题内容: 行给出了编译错误。 为何不允许这样做的任何特定原因?如何使用数组常量初始化String数组? 编辑:谢谢大家的回答。现在,我很清楚什么是允许的,什么是不允许的。但是我能问你 为什么 不允许这样做吗? 仔细搜索一下之后,我发现了这个链接,在其中,被告知像这样的编码使编译器不明确- 宠物应该是String数组还是Objects数组。但是,从声明中可以很好地看出它是一个String数组,对吗

  • 问题内容: 试图将基本身份验证添加到restTemplate 我遇到的问题是我无法初始化:(代码片段中的两个导入) 此代码解决了编译错误(eclipse没有建议可解决此问题) 1)是什么问题? 2)我输入的课程错误吗? 我的代码段: 运行此命令将获得Exception: 问题答案: 最后,使用以下命令可以更轻松地运行基本身份验证: 并不是 我的代码段: 而且有效!