我在本地运行在门户中运行的 Azure 函数时遇到问题。我在 Azure 中创建了一个默认的 C# Http 触发器,然后下载应用程序内容以在本地运行。
[5/22/18 9:03:21 PM] run.csx(8,23): error CS1061: 'HttpRequestMessage' does not contain a definition for 'GetQueryNameValuePairs' and no extension method 'GetQueryNameValuePairs' accepting a first argument of type 'HttpRequestMessage' could be found (are you missing a using directive or an assembly reference?)
[5/22/18 9:03:21 PM] run.csx(20,15): error CS1501: No overload for method 'CreateResponse' takes 2 arguments
该功能在门户中完美运行。
最佳答案
正如@Mikhail所说,这是由错误的功能核心工具(CLI)版本引起的。您下载的代码适用于 v1 CLI(.Net Framework),而 v2(您可能已经安装)适用于 .NET Core。
要安装所需的 CLI,请按照 CLI installation 操作。如果本地操作系统(如 MacOS)不支持 v1 CLI,我们可能会转向可以跨平台运行的 v2 CLI。使用 v2 CLI,无法使用在门户上创建的 v1 代码,因此我们需要 create functions locally或者将门户功能应用程序运行时更改为~2,然后再次创建并下载。
请注意,在更改运行时之前,函数应用程序应该为空,因为之前创建的函数依赖于不同的运行时,并且通常会在更改后失效。
关于azure - 本地开发azure函数 'HttpRequestMessage'不包含 'GetQueryNameValuePairs'的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476595/