1

AJAX 対応の WCF サービスを作成しましたが、POST を使用してそれを呼び出したいと考えています。しかし、サービスは 404 not found で、その理由がわかりません。いくつかの例を見ましたが、サービスにアクセスできない理由がわかりません。すでに Web 構成を変更しましたが、違いはありません。私は何を間違っていますか?

namespace ATSite
{
    [ServiceContract(Namespace = "")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class SendEmailService
    {
        [OperationContract]
        public string HelloWorld(string id)
        {
            return "Hello world " + id;
        }
    }
}

サービスの呼び出し:

function helloWorld() {
    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "../SendEmailService.svc/HelloWorld",
        data: '{"Id": "2"}',
        dataType: "json",
        success: function (result) {
            onSuccess(result);
        },
        error: alert('Erro')
    });
}
function onSuccess(result) {
    alert(result);
}

これは私のweb.configです

  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="ATSite.SendEmailServiceAspNetAjaxBehavior">
          <enableWebScript />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
    <services>
      <service name="ATSite.SendEmailService">
        <endpoint address="" behaviorConfiguration="ATSite.SendEmailServiceAspNetAjaxBehavior"
          binding="webHttpBinding" contract="ATSite.SendEmailService" />
      </service>
    </services>
  </system.serviceModel>

ありがとう!

4

2 に答える 2

0

WebInvoke 属性にはいくつかのオプションがあります。

    [WebInvoke(Method = "POST",
        BodyStyle = WebMessageBodyStyle.WrappedRequest,
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json)]
    public string MyAwesomeServiceMethod(Decimal value)
    {
        return value.ToString("F2");
    }
于 2013-05-22T17:02:58.337 に答える