从外部库静态解析Azure函数中的HttpContext/HttpRequestMessage

从外部库静态解析Azure函数中的HttpContext/HttpRequestMessage,azure,asp.net-core,.net-core,azure-functions,Azure,Asp.net Core,.net Core,Azure Functions,我需要访问Azure函数中当前活动的HttpContext或HttpRequestMessage 我试图通过外部引用库实现这一点,而不必将HttpRequestMessage作为参数传递给调用的方法 希望这在Azure函数中是可能的,或者至少尝试访问ASP.NET核心HttpContext,我可以使用IHttpContextAccessor(在我的ASP.NET核心项目中)从任何地方轻松访问它 不确定ASP.NET CoreHttpContext是否在函数中工作。否,访问全局http上下文/状态

我需要访问Azure函数中当前活动的
HttpContext
HttpRequestMessage

我试图通过外部引用库实现这一点,而不必将
HttpRequestMessage
作为参数传递给调用的方法

希望这在Azure函数中是可能的,或者至少尝试访问ASP.NET核心
HttpContext
,我可以使用
IHttpContextAccessor
(在我的ASP.NET核心项目中)从任何地方轻松访问它


不确定ASP.NET Core
HttpContext
是否在函数中工作。

否,访问全局http上下文/状态是不可能的,甚至是不推荐的。实际上,您应该只对传递给函数的HttpRequest/HttpRequestMessage进行操作,并根据需要将其传递给其他帮助程序/库


根据我们的内部函数执行模型,您可能尝试访问的任何全局/静态信息都不可靠,将来可能会更改。

您是否尝试使用Azure函数测试代码或遇到任何错误?我尝试在Azure Portal中创建新的Azure函数,尝试导入“Microsoft.AspNetCore.All”:“2.0.0”但是在“使用Microsoft.AspNetCore.Http”时,我得到了这个错误:“类型或命名空间名称'AspNetCore'在命名空间'Microsoft'中不存在”(是否缺少程序集引用?)。我还读到一些函数不支持HttpContext…您使用的函数版本是什么-预览.NET核心版本?我只是在Azure Portal中创建了一个新函数。我想它默认设置为.NETCore?谢谢汉克斯·马修。我正在为.NET核心编写一个旧的.NET基础设施,其中包括一个日志模块。此日志模块在出现任何异常时都会获取每一条相关信息:网络信息、进程信息、主机信息(cpu/memory/os等)等等,包括HttpContext(基本上是:post/get参数、客户端ip、用户代理、整页路径等等)。我允许每个使用者(项目)引用此基础结构库并注册以处理异常事件(在内部库异常的情况下)或使用Logs.Write(ex)处理引用项目中引发的异常。1/2在ASP.NET项目中,我可以捕获global.asax中的所有异常,并轻松解析当前HttpContext以获取HTTP信息。在ASP.NETCore中,我不得不使用IHttpContextAccessor,但最终效果很好。我可以在Azure函数中做什么来启用此体系结构?对于我显式捕获的异常,我可以将“HttpRequestMessage”传递给Logs.Write()(尽管每次传递它都很烦人),但是对于日志中捕获的内部错误,我如何解析当前的HTTP会话值呢?谢谢。2/2