У меня есть веб-сайт, сделанный на C# (http://my.site/
), и теперь у меня есть проект веб-API, который я хочу объединить в этот домен и прослушивать на http://my.site/api
. Это два отдельных проекта в VS2013.Host WebApi и сайт C# в том же домене
Я попытался загрузку веб-API для /api/
подкаталоге на сервере и на карте маршрут MVC к нему (WebAPI маршрут WebApiConfig.cs еще routeTemplate: "api/{controller}/{id}"
), ожидая (Home) контроллер MVC по умолчанию для ответа в /api/
. Маршрут MVC (в маршрутизации MVC WebAPI в):
routes.MapRoute(
name: "Default",
url: "{controller}", //Also api/{controller}
defaults: new { controller = "Home", action = "Get", id = UrlParameter.Optional }
);
Но я получаю «Ошибка сервера 404» при доступе к http://my.site/api/
/http://my.site/api/home
и т.д. Я не понимаю природу этой ошибки (скорее всего настройки на сайте C# в корневой папке), но можно подумать, что IIS будет обслуживать приложение по умолчанию в папке /api/
.
Так я хочу знать, если при добавлении к WebApiConfig.Register(GlobalConfiguration.Configuration);
Global.asax
(Application_Start()) и добавление WebApiConfig.cs в App_Start папка C# проекта (и с использованием соответствующих пространств имен) будет решать вопрос , Это кажется слишком простым, чтобы быть правдой, поэтому я сомневаюсь, что это сработает, поэтому мне нужно, чтобы кто-то указал мне в правильном направлении, или я совершу грех вернуться к asmx.
Если нет, то как я могу иметь сайт C# и WebAPI в том же домене?
Ожидаете ли вы, что WebSiteA сможет слушать и отвечать на запрос, сделанный для WebSiteB? –
У меня есть веб-сайт (C#), и я хочу добавить созданный для него WebAPI. – Tiago
Почему бы вам не поместить вашу логику в общую dll и добавить веб-api-библиотеки в существующий проект веб-форм и создать экземпляры веб-сервера ASP, если необходимо, чтобы обратиться в библиотеку. Таким образом, вы все равно можете развернуть его как самостоятельное решение, если вам когда-либо понадобится, но вы можете разместить свои контроллеры непосредственно в одном проекте. В настоящее время мы делаем это, поскольку нам нужны контроллеры web-api в одном из наших унаследованных проектов, никаких проблем вообще. – Igor