1

jquery を使用して ajax コンストラクト経由で wcf レスト サービスを呼び出そうとしていますが、jquery からそうすると、不正なリクエスト エラーが発生します。また、サービスを直接参照しようとすると、空白のページが表示されます。過去に WCF サービス呼び出しを行ったことがありますが、ここで何が問題なのかわかりません。すべての返信に事前に感謝します。サービスを直接参照しても、結果が表示されません。呼び出しを行う jquery ajax コードは次のとおりです。

$.ajax({ type: "GET", dataType: "json", contentType: "application/json; charset=utf-8", url: "http://localhost:57452/mobile/WCFService/ContactService.svc/こんにちは", 成功: 関数 (結果) { 警告 ('成功'); }, エラー: 関数 (結果) { 警告 (結果.ステータス + ' ' + 結果.ステータステキスト); }

    });

サービス インターフェイスは次のとおりです。

[ServiceContract]
    public interface IContactService
    {
        [OperationContract]
        [WebGet(
            ResponseFormat = WebMessageFormat.Xml,
            BodyStyle = WebMessageBodyStyle.Wrapped,
            UriTemplate = "hello")]
        string SaySomething();

    }

サービスクラスは次のとおりです。

 [AspNetCompatibilityRequirements(RequirementsMode =      AspNetCompatibilityRequirementsMode.Allowed)]
    public class ContactService : IContactService
    {
        public string SaySomething()
        {
            // Add your operation implementation here
            return "Hello!";
        }
    }

以下は、web.config ファイル内のサービスの構成です。

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <behaviors>
      <serviceBehaviors>
        <behavior name="SomeNameSpace.mobile.WCFService.ContactServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="LeeCounty_ASP.mobile.WCFService.ContactServiceBehavior"
        name="SomeNameSpace.mobile.WCFService.ContactService">
        <endpoint address="" binding="wsHttpBinding" contract="SomeNameSpace.mobile.WCFService.IContactService">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>
4

1 に答える 1

1

問題が見つかりました。wcf サービスを追加するときに、構成ファイルに追加されたデフォルトのバインディングが webHttpBinding を追加しなかったようです。このリンクからソリューションを見つけましたhttp://www.codeproject.com/Articles/132809/Calling-WCF-Services-using-jQuery

于 2012-05-28T00:31:24.913 に答える