我想知道在Azure环境中使用ControllerContext与使用HttpContext之间是否有任何暗示。我发现HttpContext是线程静态的,我正在尝试找出这是否与Azure相关。
假设没有真正的区别,我能保证在调用控制器操作时两者是相等的吗?我正在尝试为一个已建立的应用程序编写单元测试,该应用程序在控制器操作中调用HttpContext.Current。在整个应用程序的某些地方,更改是直接对HttpContext.Current进行的(特别是作为授权的一部分)。如果我切换到ControllerContext,对HttpContext.Current所做的更改是否会反映出来?
谢谢!
发布于 2011-05-26 01:53:55
它们不完全是一回事--但如果你碰巧在同一个web调用的传入线程上调用它们,那么它们确实都提供了访问同一个HttpContext实例的机制。
请参阅此问题和答案- Difference between HttpContext.Current and Controller.Context in MVC ASP.NET。
为了可测试性,如果可以的话,最好转移到ControllerContext。
发布于 2011-05-25 23:47:28
关于ControllerContext和HttpContext,我不知道。我只知道Windows Azure对它没有影响。Windows Azure运行Windows和IIS7 -所以,无论你的本地决策的答案是什么,都同样适用于云。
https://stackoverflow.com/questions/6127035
复制相似问题