Сервисный стек на MVC4

Я просто пытаюсь получить Service Stack, работающий под проектом mvc4. Работает ли пакет ServiceStack.Host.Mvc nuget с mvc 4.0? Я установил его и добавил routes.IgnoreRoute("api/{*pathInfo}"); в конфигурацию маршрутизации, но не нашел маршрут, когда я перехожу к

/api/metadata

и я получаю ошибку:

Не найден ресурс HTTP, соответствующий URI запроса 'http://localhost:51681/api/metadata'.

Ответы

Ответ 1

Нашел решение. Всякий раз, когда мы создаем новый проект asp.net mvc4, он поставляется с Asp.Net Web Api. И это также имеет путь api/. Мне не нужны оба вместе, поэтому просто удалите эти модули, используя менеджер пакетов nuget, и он будет работать как угодно.

Если вы все еще застряли, дайте мне знать. Поскольку он работает сейчас для меня с asp.net mvc4.

Ответ 2

На странице README.txt при установке ServiceStack.Host.Mvc NuGet package показывает инструкции, необходимые для установки ServiceStack с MVC, мы добавили дополнительную ссылку для поддержки MVC4, поскольку она поставляется в комплекте с конфликтующим WepApi.

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

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

Нам также не нравится предоставлять инструкции по ручной установке отключить WebApi от установки MVC4 по умолчанию, но, к сожалению, это лучшее, что мы можем сделать в момент с доступным.

Документы ServiceStack - это сообщество wiki

Если вы чувствуете, что в servicesStack wiki docs есть что-то отсутствует, не стесняйтесь добавлять их, так как они являются файлами wiki сообщества, поддерживаемыми и для сообщества ServiceStack.

Запрос команды aspnetwebstack для более простого способа отключения WebApi

Мы уже запросили команду aspnetwebstack, если бы они могли предоставить более простой и автоматический способ отключить WebApi через Nuget, почувствовать бесплатно, чтобы показать свою поддержку этой функции, комментируя запрос функции.

Полные инструкции 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();
    }
}

Вы ДОЛЖНЫ зарегистрировать путь ServiceStacks/api ', добавив строки ниже в MvcApplication.RegisterRoutes(RouteCollection) в Global.asax:

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

Поместите их перед текущими записями метода.

Для приложений MVC4 вам также необходимо отменить регистрацию WebApi, комментируя эту строку:

    //WebApiConfig.Register(GlobalConfiguration.Configuration);

Чтобы включить Mini Profiler, добавьте следующие строки в 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

Страница Urls для метаданных и включены службы:

Ответ 3

Я новый для использования стек службы, я также использую приложение MVC 4, ответ @mythz прав. но для

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

место в AppStart/RouteConfig.cs

Мое приложение работает хорошо: D