不能在ServiceStack Mvc应用程序中访问IHttpRequest

本文关键字:访问 IHttpRequest 应用程序 Mvc ServiceStack 不能 | 更新日期: 2023-09-27 18:08:39

很抱歉我对web堆栈缺乏理解,但这已经困扰我好几天了。

我试图找出如何访问请求作为一个IHttpRequest内的web控制器https://github.com/ServiceStack/SocialBootstrapApi的例子。

它目前是一个MVC c3应用程序与ServiceStack的MVC PowerPack。我的请求总是解析为System.Web.HttpRequest。我在IHttpRequest上创建了一个扩展方法来检查当前请求是否来自移动设备,但它从未被捡起,因为我所有的请求都是System.Web.HttpRequests而不是ServiceStack.ServiceHost.IHttpRequest。任何帮助都太好了!

不能在ServiceStack Mvc应用程序中访问IHttpRequest

你可以这样做

var httpReq = System.Web.HttpContext.Current.ToRequestContext().Get<IHttpRequest>();

将System.Web.HttpRequest的请求转换为ServiceStack.ServiceHost.IHttpRequest。

进入SocialBootstrapApi示例的控制器的请求不是通过ServiceStack管道来的。控制器确实继承自servicestackcontroller,但我认为它的目的是在MVC和ServiceStack之间共享会话数据。servicestackcontroller不像进入/api path的请求那样接管请求/响应,后者在示例项目中完全由ServiceStack处理。