Как разместить службу данных WCF в приложении ASP.Net MVC3 - PullRequest
2 голосов
/ 30 декабря 2011

Я написал несколько сервисов данных WCF и считаю их весьма полезными.Тем не менее, я нашел маршрутизацию, чтобы быть довольно болезненным.Я видел разговоры, которые указывают, что вы можете разместить службу данных в приложении ASP.Net MVC (я всегда использовал веб-сайты ASP.Net).Тем не менее, я не могу найти какие-либо примеры того, как этого добиться.У кого-нибудь есть рекомендации, которые я мог бы проверить или посоветовать?

Ответы [ 2 ]

2 голосов
/ 23 ноября 2015

Вопрос был опубликован некоторое время назад, но я предполагаю, что все еще есть люди, заинтересованные в использовании WCF Data Services в проектах ASP.NET MVC.

Предполагая, что в вашем проекте есть служба с именем: 'DataSourceService.svc 'вы можете использовать эту службу в проекте MVC, настроив маршрутизацию в' RouteConfig.cs 'следующим образом:

using System.Data.Services;
using System.ServiceModel.Activation;
using System.Web.Mvc;
using System.Web.Routing;

namespace <YourNamespace>
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                // the controller should NOT contain "DataSourceService"
                constraints: new { controller = "^((?!(DataSourceService)).)*$" }
            );

            routes.Add(new ServiceRoute("DataSourceService", new DataServiceHostFactory(), typeof(DataSourceService)));

        }
    }
}

Убедитесь, что в Web.config имеется следующая конфигурация:

<configuration>
  ...
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
  ...
</configuration>

Теперь вы можете проверить, что все работает нормально, запустив ваш проект в браузере и используя следующий URL:

http://localhost:port_number/DataSourceService/$metadata

... который должен вернуть ваши метаданные.

0 голосов
/ 31 декабря 2011

Веб-интерфейс WCF может делать то, что вы ищете.Вот их страница начала работы .Вы размещаете сервис внутри приложения MVC и даже подключаетесь к той же маршрутизации, которую использует MVC.

...