2

構成ファイルを使用するのではなく、プログラムでエンドポイントを作成する WCF サービスを使用しています。フィールド エンジニアは XML を簡単に壊す傾向があり、さまざまなシナリオでさまざまな種類のバインドを使用する可能性があるため、これを検討しています。

これは、自己ホスト環境 (コンソール アプリ、Windows アプリ) で、Windows サービスとして適切に機能します。

IIS のサービスでこれを行うことはできますか?それともエンドポイントごとに .SVC ファイルを提供する必要がありますか?

また、クライアント エンドからのエンドポイント アドレスには .SVC 拡張子を含める必要がありますか?

これは、第三者による使用を意図したサービスではなく、当社のクライアント コンポーネントのみによるものです。後で API の一部を公開する可能性がありますが、最初は公開しません。

4

1 に答える 1

2

.NET Framework 4.0 (およびそれ以降) を使用している場合は、ASP.NET ルーティング統合を使用して、カスタムServiceHostFactory実装を使用してサービスを定義できます。必要なものは次のとおりです。

  • web.config でaspNetCompatibilityEnabled<system.serviceModel / serviceHostingEnvironment>要素の属性をtrue
  • global.asax/global.asax.csファイルを追加し、ASP.NETコレクションApplication_Startに新しいファイルを追加します。サービス ルートでは、エンドポイントをプログラムで定義できる新しいサービス ホスト ファクトリを定義する必要があります。ServiceRouteRouteTable.Routes

これにより、アドレスに「.svc」が含まれていないエンドポイントを持つことができます。各サービス(エンドポイントではない)の .svc ファイルを作成Factoryし、ディレクティブで属性を使用することにより、ルートを使用せずにサービス ホスト ファクトリを使用することもできます<%@ ServiceHost

サービス ホスト ファクトリの詳細については、http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/14/wcf-extensibility-servicehostfactory.aspxの投稿を確認してください。

于 2012-08-27T19:03:39.040 に答える