2

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

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

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

4

1 回答 1

4

你可以做类似的事情

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

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

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

于 2013-04-11T22:51:12.980 回答