很抱歉我对网络堆栈缺乏了解,但这已经让我困扰了几天。
我正在尝试弄清楚如何在https://github.com/ServiceStack/SocialBootstrapApi示例的Web控制器中访问Request作为IHttpRequest。
它目前是ServiceStack的MVC PowerPack的MVC3应用程序。我的请求总是解析为System.Web.HttpRequest。我在IHttpRequest上创建了一个扩展方法,以检查当前请求是否来自移动设备,但它永远不会被拾取,因为我的所有请求都是System.Web.HttpRequests而不是ServiceStack.ServiceHost.IHttpRequest。任何帮助都会很棒!
答案 0 :(得分:4)
您可以执行类似
的操作var httpReq = System.Web.HttpContext.Current.ToRequestContext().Get<IHttpRequest>();
将请求从System.Web.HttpRequest转换为ServiceStack.ServiceHost.IHttpRequest。
进入SocialBootstrapApi示例的控制器的请求不是来自'ServiceStack管道'。控制器执行inherit from ServiceStackConroller但我认为其目的是在MVC和ServiceStack之间共享会话数据。 ServiceStackContoller不接受请求/响应,就像进入/api path
的请求一样,该请求完全由示例项目中的ServiceStack处理。