在MVC4服务栈(Service Stack on MVC4)

2019-06-28 04:36发布

我只是试图让服务栈一个mvc4项目下运行。 是否ServiceStack.Host.Mvc与MVC 4.0 NuGet包的工作? 我安装了它,并且增加了routes.IgnoreRoute("api/{*pathInfo}"); 该路由配置,但它没有找到的路线,当我去

/api/metadata

我得到的错误:

没有HTTP资源发现匹配的请求URI ' HTTP://本地主机:51681 / API /元数据 '。

Answer 1:

找到了解决办法。 每当我们正在创造新的asp.net mvc4项目它与Asp.Net的Web API。 并且还具有路径API /。 我并不需要都在一起,所以才删除使用该模块的NuGet包管理器,它会像什么。

如果你还停留在任何地方让我知道。 由于它是用asp.net mvc4现在为我工作。



Answer 2:

在README.txt文件在安装页面ServiceStack.Host.Mvc NuGet包显示需要与MVC安装ServiceStack的指示,我们已经增加了一个与MVC4支持额外的行 ,因为它配备了一个矛盾的WepApi捆绑在一起。

For MVC4 applications you also need to unregister WebApi, by commenting out this line:

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

我们不喜欢不必提供手动安装说明来从默认禁用的WebAPI安装MVC4的 ,但不幸的是,这是我们当时可以用什么可用的做到最好。

该ServiceStack文档是一个社区的wiki

如果你觉得有什么遗漏对ServiceStack的wiki文档 ,请随时添加它们,因为它们是由保持了社区的wiki文档,并为ServiceStack社区。

问aspnetwebstack团队禁用的WebAPI的简单方法

我们已经从aspnetwebstack组要求,如果他们可以提供一个更简单和自动化的方式,以便能够通过的NuGet禁用的WebAPI ,随时可以通过评论的功能要求,以显示你的这个功能的支持。

全部的README.txt说明

为了使更多的README搜索我在这里赘述了:


在ASP.NET MVC主机非常相似,在任何ASP.NET框架托管,即ServiceStack APPHOST仍然需要在你启动时进行初始化Global.asax.cs (或WebActivator),例如:

public class Global : System.Web.HttpApplication
{
    protected void Application_Start(object sender, EventArgs e)
    {
        new AppHost().Init();
    }
}

必须通过添加下面的线到Global.asax MvcApplication.RegisterRoutes(RouteCollection)寄存器ServiceStacks“/ API”的路径:

routes.IgnoreRoute("api/{*pathInfo}"); 
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); //Prevent exceptions for favicon

将它们放在当前条目的方法之前。

对于MVC4应用程序,您还需要注销的WebAPI,注释掉这一行:

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

要启用迷你探查添加以下代码行中MvcApplication在Global.asax.cs中:

protected void Application_BeginRequest(object src, EventArgs e)
{
    if (Request.IsLocal)
        ServiceStack.MiniProfiler.Profiler.Start();
}

protected void Application_EndRequest(object src, EventArgs e)
{
    ServiceStack.MiniProfiler.Profiler.Stop();
}

有关MiniProfiler更多信息见的V3.09 https://github.com/ServiceStack/ServiceStack/wiki/Release-Notes

元数据页,其中包括服务的网址:

  • / API /元数据 - 自动生成的元数据页
  • / API / HELLO -简单的Hello World服务看: http://www.servicestack.net/ServiceStack.Hello/
  • / API /待办事项-简单的REST服务,请参阅: http://www.servicestack.net/Backbone.Todos/
  • /default.htm - Backbone.js的TODO应用在/ API /待办事项谈话的TODO REST服务


Answer 3:

我新的使用服务栈,我使用MVC 4应用过,答案@mythz是正确的。 但对于

routes.IgnoreRoute("api/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" }); //Prevent exceptions for favicon

发生在AppStart的/ RouteConfig.cs

我的应用程序运行良好:d



文章来源: Service Stack on MVC4