web-dev-qa-db-ja.com

ブラウザーを介してWCFサービスメソッドを呼び出す

基本的なhttpバインディングを使用するWCFサービスを使用しています。ブラウザ経由でその操作/メソッドを呼び出すにはどうすればよいですか?

29
Steve Chapman

サービスに複数のエンドポイントを設定することをお勧めします。 webHttpBindingを使用してエンドポイントを追加し、サービスのXMLバージョンを取得します。これが正しく行われた場合、サービスから取得する応答はbasicHttpBindingエンドポイントと同じですが、SOAPオーバーヘッドはありません。

それ以外は、フォーム投稿が必要なため、ブラウザからSOAP Webサービスを直接呼び出すことはできません。 SOAPを使用してツールをテストすることもできますが、 SOAP UI をお勧めします。それはJavaで書かれていますが、私はそれに反対しないようにしています。 :)

10
Steve

次のサンプルのように、WebGetAttributeをメソッドに追加する必要があります。

[OperationContract]
[WebGet(UriTemplate = "/placesList/{userId}",
ResponseFormat = WebMessageFormat.Xml)]
List<Places> GetAllPlacesForUser(String userId)
{
  string xml = "";
  // build xml here
  return xml;
}

ブラウザで、次のようなメソッドを呼び出すことができます

http:// localhost:8085/GeoPlacesDataService/placesList/1
ここで、10はuserIdパラメーターです。

注:WebGetAttributeを追加するには、別のAssemblyにあるSystem.ServiceModel.Web名前空間を参照する必要があります

36
Jalal El-Shaer

上記のコードを追加した後、エンドポイントプロパティをweb.configbinding="webHttpBinding"およびbehaviorConfiguration="webHttp"

6