无法在ServiceStack Mvc应用程序中访问IHttpRequest

时间:2013-04-11 05:57:43

标签: c# asp.net-mvc servicestack

很抱歉我对网络堆栈缺乏了解,但这已经让我困扰了几天。

我正在尝试弄清楚如何在https://github.com/ServiceStack/SocialBootstrapApi示例的Web控制器中访问Request作为IHttpRequest。

它目前是ServiceStack的MVC PowerPack的MVC3应用程序。我的请求总是解析为System.Web.HttpRequest。我在IHttpRequest上创建了一个扩展方法,以检查当前请求是否来自移动设备,但它永远不会被拾取,因为我的所有请求都是System.Web.HttpRequests而不是ServiceStack.ServiceHost.IHttpRequest。任何帮助都会很棒!

1 个答案:

答案 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处理。