Azure 中的 ControllerContext 与 HttpContext

发布于 2024-11-09 19:46:57 字数 338 浏览 8 评论 0原文

我想知道在 Azure 设置中使用 ControllerContext 与 HttpContext 之间是否有任何影响。我发现 HttpContext 是线程静态的,我试图找出这在 Azure 中是否相关。

假设没有真正的区别,我可以保证在调用控制器操作时两者相等吗?我正在尝试为已建立的应用程序编写单元测试,该应用程序在控制器操作中对 HttpContext.Current 进行一些调用。在整个应用程序的某些地方,直接对 HttpContext.Current 进行更改(特别是作为授权的一部分)。如果我切换到 ControllerContext,对 HttpContext.Current 所做的更改是否会反映出来?

谢谢!

I'm wondering if there are any implications between using ControllerContext as opposed to HttpContext, in an Azure setting. I've found that HttpContext is thread static, and I'm trying to find out if this is relevant in Azure or not.

Assuming there is no real difference, can I guarantee that the two will be equal when a controller action is called? I'm attempting to write unit tests for an established application which makes some calls to HttpContext.Current in controller actions. In some places throughout the app changes are made directly to HttpContext.Current (specifically as part of authorization). If I switch over to ControllerContext, will changes made to HttpContext.Current be reflected?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

っ左 2024-11-16 19:46:57

它们并不完全相同 - 但如果您碰巧在 Web 调用的同一传入线程上调用它们,那么它们确实都会提供访问同一 HttpContext 实例的机制。

请参阅此问题和答案 - HttpContext 之间的差异。 MVC ASP.NET 中的当前和 Controller.Context

为了可测试性,如果可以的话最好转移到 ControllerContext。

They're not quite the same thing - but if you happen to be calling them both on the same incoming thread from a web call then they will indeed both provide mechanisms to access the same HttpContext instance.

See this question and answer - Difference between HttpContext.Current and Controller.Context in MVC ASP.NET.

For testability, it is good to move to ControllerContext if you can.

做个少女永远怀春 2024-11-16 19:46:57

关于 ControllerContext 与 HttpContext,我不知道。我只知道Windows Azure对此没有影响。 Windows Azure 运行 Windows 和 IIS7 - 因此,无论您的本地决策的答案是什么,都同样适用于云。

Regarding ControllerContext vs HttpContext, I have no idea. I just know that Windows Azure has no bearing on it. Windows Azure runs Windows and IIS7 - so, whatever the answer is for your on-premises decision applies equally to the cloud.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文