2011-12-30 19 views
2

私はいくつかのWCFデータサービスを書いており、非常に有用であると思います。しかし、私はかなりの痛みをルーティングが見つかりました。私はASP.Net MVCアプリケーションでデータサービスをホストできることを示す会話を見てきました(私はいつもASP.Net Webサイトを使用しています)。しかし、私はこれを達成する方法の例を見つけることができないようです。誰かチェックアウトやアドバイスができる参考資料はありますか?ASP.Net MVC3アプリケーションでWCFデータサービスをホストする方法

答えて

0

WCF Web APIが、あなたが探しているものを行う可能性があります。ここに彼らのgetting started pageがあります。 MVCアプリケーション内でサービスをホストし、MVCが使用するのと同じルーティングにフックします。

+3

質問は、特にSOAPベースのWCFサービスとは異なる方法で動作するWCF Data Servicesについてです。あなたの答えが彼らの質問に当てはまるかどうかは分かりません。 –

+0

アドバイスありがとうございます。残念ながら、私が決定できるものから@M。正しい。これはデータサービスでは機能しません。 – RockyMountainHigh

2

質問がありましたが、ASP.NET MVCプロジェクトでWCFデータサービスを使用することに興味がある人はまだいると思います。次のように「RouteConfig.cs」にルーティングを設定することで、MVCプロジェクトでは、このサービスを使用することができます「DataSourceService.svc」:

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))); 

     } 
    } 
} 

メイクをあなたのプロジェクトにと呼ばれるサービスを持っていると仮定すると

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

今、あなたはすべてがブラウザでプロジェクトを実行すると、以下のURLを使用して正常に動作することを確認することができます:

あなたがWeb.configファイルに次のような構成を持っていることを確認してください

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

...メタデータを返す必要があります。

関連する問題