アドレス(ホストベースアドレスはhttp://localhost/MyService)でwsHttpBindingを使用してサービスをホストしています。私の契約でサービスルートアドレス(後続のスラッシュなし)でWCF RESTサービスをホストするにはどうすればよいですか?
(IMyService
)、私が持っている:
[OperationContract]
[WebInvoke(
Method = "GET",
UriTemplate = "/")]
Stream GetRootPage();
私は私のサービスを実行してhttp://localhost/MyService/を参照している場合、それは正常に動作します。 http://localhost/MyServiceを参照すると、このサービスでメタデータ公開サービスが有効になっていないことを示す既定のWCFページが表示されます。
IはUriTemplateの様々な組み合わせを試してみました:
- UriTemplate = ""
- UriTemplate = "/"
- UriTemplate = "*"
サービス・ベースと組み合わせてアドレス:
それらのすべてが同じ動作をもたらします。これまでのある時点で、私はUriTemplateでサブパスを使用していた可能性がありますが、これが機能していると宣言していた可能性があります。 UriTemplateを "/ abc/123 /"にすると、WCFが自動的にHTTP 307リダイレクトを自動的に発行するため、/ abc/123(後続のスラッシュなし)を参照できます。
私は.NET 4.0を使用しています。
これまでのところ、それを見ても、私はServiceRouteコードを見ていませんでした。私の最初の前提は、そこにホストされているサービスはwww.domain.comで、UriTemplateは「cars」でした。私のコードをもう少し詳しく試してみましょう。 – Travis
これ以上見ると、私の質問には答えられません。これは、複数のサービスが本質的に同じアドレスでホストされるようにルートを追加することです。私は本質的にルートアドレスに何かをホストしようとしています(末尾にスラッシュはありません) – Travis