我想知道在Azure设置中使用ControllerContext而不是HttpContext之间是否有任何影响。我发现HttpContext是线程静态的,我试图找出它是否与Azure相关。
假设没有真正的区别,我可以保证在调用控制器动作时两者相等吗?我正在尝试为已建立的应用程序编写单元测试,该应用程序在控制器操作中调用HttpContext.Current。在整个应用程序的某些地方,更改直接进行到HttpContext.Current(特别是作为授权的一部分)。如果我切换到ControllerContext,是否会反映对HttpContext.Current所做的更改?
谢谢!
答案 0 :(得分:2)
关于ControllerContext vs HttpContext,我不知道。我只知道Windows Azure与它无关。 Windows Azure运行Windows和IIS7 - 因此,无论您的内部部署决策的答案是什么,都适用于云。
答案 1 :(得分:2)
它们不是完全相同的 - 但如果您碰巧在Web调用的同一传入线程上调用它们,那么它们确实都会提供访问相同HttpContext实例的机制。
请参阅此问题和答案 - Difference between HttpContext.Current and Controller.Context in MVC ASP.NET。
对于可测试性,如果可以的话,最好转移到ControllerContext。