0

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

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

谢谢!

4

2 回答 2

2

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

于 2011-05-25T15:47:27.653 回答
2

它们并不完全相同——但如果你碰巧在来自网络调用的同一个传入线程上调用它们,那么它们确实都会提供访问同一个 HttpContext 实例的机制。

请参阅此问答 - MVC ASP.NET 中 HttpContext.Current 和 Controller.Context 之间的区别

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

于 2011-05-25T17:53:54.510 回答