0

シンプルな WCF Restful サービスを作成しています。現在、localhost/AzamSharpService.svc を参照すると、WSDL を調べることができる Web サービスの既定のページが表示されます。

localhost/AzamSharpService.svc/LatestArticles を参照し、GetLatestArticles メソッドから json を取得したいと考えています。現在、/LatestArticles の URL を参照すると、ページが見つからないと表示されます。

実装を以下に示します。

 [ServiceContract]
    public interface IAzamSharpService
    {
        [OperationContract]
        [WebGet(BodyStyle  = WebMessageBodyStyle.Bare, RequestFormat =WebMessageFormat.Json,ResponseFormat = WebMessageFormat.Json, UriTemplate = "/LatestArticles")]
        List<ArticleContract> GetArticles();
    }

 public class AzamSharpService : IAzamSharpService
    {
        public List<ArticleContract> GetArticles()
        {
            var articles = new List<ArticleContract>()
                               {
                                   new ArticleContract() {Title = "iOS"}, 
                                   new ArticleContract() { Title="Android"},
                                   new ArticleContract() { Title = "Windows 7"}

                               };
            return articles; 
        }
    }

構成を以下に示します。

 <system.serviceModel>

      <services>
        <service name="AzamSharpNewLook.AzamSharpService">
          <endpoint address="AzamSharpService.svc"
                    binding="webHttpBinding"
                    contract="AzamSharpNewLook.IAzamSharpService"
                    behaviorConfiguration="webby"/>

            </service>
      </services>
        <behaviors>

          <endpointBehaviors>
            <behavior name="webby">
              <webHttp/>
            </behavior>
          </endpointBehaviors>

            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
    </system.serviceModel>
4

1 に答える 1

1

試してみるいくつかのこと...エンドポイントアドレスを空の文字列に設定します...webHttpノードでヘルプを有効にしてみてください...そして、localhost/AzamSharpService.svc/helpに移動して詳細情報を取得できるはずです。最後に、フィドラーを使用して適切なアドレスへの取得要求を作成し、応答を確認するだけで、必要なものが得られるはずです。お役に立てれば...

于 2012-07-16T21:27:43.970 に答える