首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用作引用项目时,服务堆栈会中断MVC路由

用作引用项目时,服务堆栈会中断MVC路由
EN

Stack Overflow用户
提问于 2012-08-05 20:01:37
回答 2查看 1.3K关注 0票数 1

我已经创建了一个servicestack MVC项目,我将其用作数据库的主API。因为我想在我的代码中访问模型,所以我还在我的MVC视图、项目和控制器项目中添加了对此项目的引用。

然而,当我运行我的项目网站项目时,我遇到了真正的问题,因为ServiceStack认为它拥有我的解决方案,并接管了所有请求,然后无法解决我的路由。

我已经在web项目全局文件中添加了路由,我也尝试将这些路由添加到servicestack项目中,但仍然无法解析。

下面是错误:

代码语言:javascript
运行
复制
[ResolutionException: Required dependency of type      uyr.print.controllers.Controllers.UsersController could not be resolved.]
    Funq.Container.ThrowMissing(String serviceName) in        C:\src\ServiceStack\src\ServiceStack\Funq\Container.cs:297
   Funq.Container.GetEntry(String serviceName, Boolean throwIfMissing) in C:\src\ServiceStack\src\ServiceStack\Funq\Container.cs:275
   Funq.Container.ResolveImpl(String name, Boolean throwIfMissing) in C:\src\ServiceStack\src\ServiceStack\Funq\Container.cs:112
  Funq.Container.ResolveNamed(String name) in C:\src\ServiceStack\src\ServiceStack\Funq\Container.Overloads.cs:283
  Funq.Container.Resolve() in C:\src\ServiceStack\src\ServiceStack\Funq\Container.Overloads.cs:230
   lambda_method(Closure , Container ) +41
    ServiceStack.ServiceHost.ContainerResolveCache.CreateInstance(Type type, Boolean tryResolve) in C:\src\ServiceStack\src\ServiceStack\ServiceHost\ContainerResolveCache.cs:62
   ServiceStack.ServiceHost.ContainerResolveCache.CreateInstance(Type type) in C:\src\ServiceStack\src\ServiceStack\ServiceHost\ContainerResolveCache.cs:37
   ServiceStack.Mvc.FunqControllerFactory.GetControllerInstance(RequestContext   requestContext, Type controllerType) in   C:\src\ServiceStack\src\ServiceStack.FluentValidation.Mvc3\Mvc\FunqControllerFactory.cs:38
    System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74
   System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +232
   System.Web.Mvc.<>c__DisplayClass6.<BeginProcessRequest>b__2() +49
   System.Web.Mvc.<>c__DisplayClassb`1.<ProcessInApplicationTrust>b__a() +13
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Func`1 func) +124
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +98
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970356
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

如果有人能在这里给我指出正确的方向,我将不胜感激。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-06 01:20:40

ServiceStack中的

认为它拥有我的解决方案,并接管所有请求,然后无法解析我的路由。

ServiceStack不拥有任何您没有明确告知它的东西。

容器容器ControllerBuilder.Current.SetControllerFactory(new (

ServiceStack ServiceStack FunqControllerFactory);

这告诉MVC使用ServiceStack内置的Funq IOC来解析和自动连接所有MVC控制器。通常,如果您在同一项目中同时运行ServiceStack + MVC,您希望使用相同的IOC来解决ServiceStack服务和MVC控制器的依赖关系。

如果不希望MVC控制器使用ServiceStack的IOC,请取消对该行的注释。

处理程序路径配置

在Web.config中,您还可以告诉ServiceStack exactly what path you want ServiceStack to handle

这是仅有的两个配置ServiceStack来处理请求的地方。如果您没有这些配置,那么ServiceStack dlls是良性的,并且不会对您的项目产生任何影响。也就是说,没有注册侵入性地尝试hi-jack请求的HTTP模块。

这里唯一有这个问题的库是MVC,它认为它拥有整个解决方案,即使在告诉IIS将所有/api请求委托给ServiceStack (使用Web.Config)之后,您也需要告诉MVC使用以下命令显式忽略这些路由:

代码语言:javascript
运行
复制
routes.IgnoreRoute("api/{*pathInfo}"); 

否则,它将尝试处理它们。

票数 2
EN

Stack Overflow用户

发布于 2012-08-05 20:06:49

看起来您使用的是Funq DI container。它正在尝试查找您在Funq初始化期间尚未创建的依赖项。即使不知道Funq是如何工作的(之前从未听说过它),也不知道你的代码库是什么样子的,这就是我们目前所能提供的最大帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11816240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档