0

JSON メッセージを返す WCF Rest サービスを作成しています。インターネットで見つけた例をガイドとして使用しようとしています。テスト クライアントを起動するたびに、メソッドが表示されません。サービスの実行中に Uri に移動すると、「ページを表示できません」というページが表示されます。ここからどこへ行くべきか正確にはわかりません。どんな助けでも大歓迎です。

ウェブ構成:

<system.serviceModel>
<bindings>
  <webHttpBinding>
    <binding name="webHttpBindingWithJasonP"
             crossDomainScriptAccessEnabled="true" />
  </webHttpBinding>
</bindings>
<services>
  <service name="WcfRestLicense.LicenseService"
           behaviorConfiguration="WebServiceBehavior">
    <endpoint behaviorConfiguration="jsonBehavior"
              binding="webHttpBinding"
              bindingConfiguration="webHttpBindingWithJasonP"
              contract="WcfRestLicense.ILicenseService" />
    <endpoint contract="IMetadataExchange"
              binding="mexHttpBinding"
              address="mex" />

  </service>
</services>
<!--<client />-->

<behaviors>
  <endpointBehaviors>
    <behavior name="jsonBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="WebServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>

<protocolMapping>
  <add
    scheme="http"
    binding="webHttpBinding"
    bindingConfiguration="webHttpBindingWithJasonP" />
</protocolMapping>
<serviceHostingEnvironment
  aspNetCompatibilityEnabled="false"
  multipleSiteBindingsEnabled="true" />

サービス方法:

public IQueryable<customer> GetCustomerById(string customerId)
    {
        int custId = Convert.ToInt32(customerId);
        return _context.customers.Where(c => c.cust_id == custId);
    }

インターフェース:

[ServiceContract]
public interface ILicenseService
{
    [OperationContract]
    [WebGet(UriTemplate = "customer/{customerId}/",
        RequestFormat= WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Bare)]
    IQueryable<customer> GetCustomerById(string customerId);
}
4

1 に答える 1

0

テスト クライアントで について話している場合WcfTestClient、RESTful サービスでは機能しません。SOAP ベースの Web サービスで動作するように設計されています。次のような適切な URI を渡すことで、ブラウザーで RESTful サービスをテストできます。

http://<location of your service>/service/1

数字の 1 は顧客 ID です。これは、a) 私は RESTful サービスをあまり使っていない、b) あなたの実際のアドレスがわからない、という大まかな例です。

Uri にアクセスしたときに 404 を取得する限り、ヘルプ ページを探しているように聞こえます。設定ファイルでそれを有効にすることができます:

<bindings>
  <webHttpBinding>
    <binding name="webHttpBindingWithJasonP"
             crossDomainScriptAccessEnabled="true" 
             enableHelp="true" />
  </webHttpBinding>
</bindings>
于 2013-09-10T03:39:59.600 に答える