c# - Azure Functions:HttpRequestMessage 不包含“CreateResponse”的定义
问题描述
我构建了由 Http 请求触发的 ac# Azure 函数应用程序。这个应用程序的目的是使用数字孪生来改变我的设备所需的状态。为此,我导入了以下依赖项(在 project.son 文件中):
"Microsoft.Azure.Devices": "1.17.2",
"Microsoft.Azure.Devices.Client": "1.19.0",
"Microsoft.Azure.Devices.Shared": "1.15.2",
"Newtonsoft.Json": "12.0.1"
这是我的错误,当我想返回一个 HttpResponseMessage
req.CreateResponse<string>(HttpStatusCode.BadRequest, "Please pass a status on the query string or in the request body");
我收到以下错误:
[run.csx] 'HttpRequestMessage' does not contain a definition for 'CreateResponse' and the best extension method overload 'HttpRequestMessageExtensions.CreateResponse<string>(HttpRequestMessage, HttpStatusCode, string)' requires a receiver of type 'HttpRequestMessage'
我怀疑依赖项会导致此错误,但我在互联网上没有找到任何解决方案。
你知道如何解决这个问题吗?
谢谢
解决方案
解决方案:
转到 kudu( https://<functionapp>.scm.azurewebsites.net/DebugConsole
) 并导航到D:\home\data\Functions\packages\nuget
,删除system.net.http
包然后重新启动函数应用程序。
解释:
HttpRequestMessage
位于组装System.Net.Http.dll
。我发现 Function host 引用了 GAC(全局程序集缓存)中的程序集。在 Azure 上,文件路径是D:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll
. 引用不能重定向到我们使用 nuget 安装的那个(您安装的包在System.Net.Http.dll
内部引用),否则我们会出错。
推荐阅读
- ubuntu - 让我们加密将域 x.com 更改为 y.com
- python - Windump 通过 python 子进程和 PyQt 按钮
- python - torch.rfft - 基于 fft 的卷积创建与空间卷积不同的输出
- python - 如何将数据从 Quantopian 传输到 Excel
- tags - 使用 ID3 标签收集信息
- algorithm - 在 O(1) 中找到 bst 中的后继者和前任者
- bash - 从一行中删除单词 - Bash
- uwp - 如何在 UWP 应用中播放你的视频
- python - Jupyter Notebook 覆盖之前的类实例
- django - Django 管理员用户表