2012-04-01 8 views
0

今日、私はWCFサービスから.svcファイルを削除して、オンラインで探し始めたと決めました。ここでWCFサービスから.svcを削除するとエンドポイントが見つかりません

は、私が何をしたかのステップのプロセスバイステップです:

ステップ1:私は、Global.asaxの

void Application_Start(object sender, EventArgs e) 
{ 
    RouteTable.Routes.Add(new ServiceRoute("Authorization", new WebServiceHostFactory(), typeof(Authenticator))); 
    RouteTable.Routes.Add(new ServiceRoute("Miscellaneous", new WebServiceHostFactory(), typeof(Misc))); 
} 

注追加:認証およびその他の

私のインターフェイスを実装しています

手順2:有効asp.net互換性

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 

ステップ3:私はそれぞれのインターフェイスの実装に[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]を追加しました。

ステップ4:私のインターフェイスのすべてのメソッドに[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]を追加する必要がありました。私はこれが何をしているのか分からないが、それがなければエラーになっていた。

これは "機能しますが、root/Authorization(私の最初のサービスの名前であるAuthorization)に移動すると、エンドポイントが見つからないことがわかります。

私のエンドポイントは、次のような私のweb.configファイルで指定されています

 <service name="AuthenticatorService.Authenticator"> 
      <endpoint address="auth" binding="basicHttpBinding" name="AuthEndpoint" 
       contract="AuthInterface.IAuthenticator" /> 
      <endpoint address="mex" binding="mexHttpBinding" name="MetadataEndpoint" 
       contract="IMetadataExchange" /> 
     </service> 

私はWCFに非常に新しいですので、それはおそらくいくつかの愚かな間違いです。

+0

あのを、なぜあなたは.SVCファイルを削除したいのですか? – DOK

+0

私はあなたがそれを読むことができるので、私はそこにそれが好きではなかった。 – TheGateKeeper

+1

標準的な方法から逸脱しようとする前に、新しい技術を通常の方法で学ぶ方が簡単な場合もあります。特にあなたが好きではない理由だけでなく、あなたが選んだ理由も十分に確立されていなければ。あなたが頑固に感じているなら、あなたは[WCF .svc extention](http://stackoverflow.com/questions/7354616/wcf-removing-svc-extention)を見つける右の "関連"リンクを閲覧することができます。 )などが挙げられる。 – DOK

答えて

3

あなたの設定では、SOAPサービスであるbasicHttpBindingを定義していますが、サービスルートでは、WCFのRESTサービスに使用されるWebServiceHostを渡します( webHttpBinding)。

これを試してみてください - ちょうどあなたのglobal.asaxファイルに「通常の」(SOAP指向)ServiceHostFactoryを使用します。

void Application_Start(object sender, EventArgs e) 
{ 
    RouteTable.Routes.Add(
     new ServiceRoute("Authorization", 
         new ServiceHostFactory(), typeof(Authenticator))); 
    RouteTable.Routes.Add(
     new ServiceRoute("Miscellaneous", 
         new ServiceHostFactory(), typeof(Misc))); 
} 
+0

私はこのアイデアを廃止したので、私はこれを使用しませんでしたが、これは探している人を助けるでしょう。 – TheGateKeeper

関連する問題