抱歉,我对网络堆栈缺乏了解,但这已经困扰了我几天。
我正在尝试弄清楚如何在 https://github.com/ServiceStack/SocialBootstrapApi 的 Web Controller 中以 IHttpRequest 的形式访问请求。示例。
它目前是一个带有 ServiceStack 的 MVC PowerPack 的 MVC3 应用程序。我的请求总是解析为 System.Web.HttpRequest。我在 IHttpRequest 上创建了一个扩展方法来检查当前请求是否来自移动设备,但它永远不会被接收,因为我的所有请求都是 System.Web.HttpRequests 而不是 ServiceStack.ServiceHost.IHttpRequest。任何帮助都会很棒!
最佳答案
你可以做类似的事情
var httpReq = System.Web.HttpContext.Current.ToRequestContext().Get<IHttpRequest>();
将来自 System.Web.HttpRequest 的请求转换为 ServiceStack.ServiceHost.IHttpRequest。
进入 SocialBootstrapApi 示例的 Controller 的请求不是通过“ServiceStack 管道”来的。 Controller 执行 inherit from ServiceStackConroller但我认为它的目的是在MVC和ServiceStack之间共享Session数据。 ServiceStackContoller 不会像进入 /api 路径
的请求那样接管请求/响应,在示例项目中完全由 ServiceStack 处理。
关于c# - 无法在 ServiceStack Mvc 应用程序中访问 IHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15941659/