Сервисный стек на 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