【问题标题】:HttpContext.Current is null in api call when running in a azure worker role以 azure worker 角色运行时,api 调用中的 HttpContext.Current 为 null
【发布时间】:2015-03-01 17:49:05
【问题描述】:

我正在尝试使用 Httpcontext.Current 在方法(由控制器调用)中获取我的 owin 上下文,这在 IIS 中运行站点时非常有效。仅当我将我的 api 作为 Azure 辅助角色运行时才存在问题。即使我在控制器中添加断点并尝试获取 HttpContext.Current 我仍然会得到空值。

我的问题是:使用 azure 时是否需要添加一些额外的内容?还是工作者角色不支持这种方法?

【问题讨论】:

  • 我怀疑 HttpContext.Current 是否在网站是自托管的情况下有效。你真的验证过吗?
  • 其实没有。我将此 api 与另一个服务混淆了。我会编辑我的问题。你认为这就是它不起作用的原因吗?由于在工作角色中运行 owin api 与运行自托管或多或少相同。
  • 是的,准确地说。您应该忘记启用 OWIN 的应用程序中的 HttpContext.Current。它可能在 IIS 中工作的事实并不意味着您应该使用它,因为您正在扼杀 OWIN 的所有好处并将您的代码与 ASP.NET 主机耦合。
  • 好的,现在我知道去哪里寻找更多信息了。如果您添加答案,我会接受。

标签: c# owin azure-worker-roles


【解决方案1】:

我怀疑 Azure 辅助角色使用了某些特定的 OWIN 主机,而 HttpContext.Current 不可用。 HttpContext.Current 仅在 ASP.NET 主机内可用。

【讨论】:

    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2013-04-08
    相关资源
    最近更新 更多