1

私の要件は、Jquery Ajax とサービス参照の追加の両方から単純な WCF サービスを呼び出せるようにすることです。

これは asmx サービスで簡単に実行できます。この単純なタスクが非常に困難で複雑であることがわかっている場合、WCF がどのように「より良く」「より強力」になるかを理解するのに本当に苦労しています。

次のようなさまざまなチュートリアルに従いました。

http://www.codeproject.com/Articles/132809/Calling-WCF-Services-using-jQuery http://www.codeproject.com/Articles/540169/CallingplusWCFplusServicespluswithplusjQuery-e2-80 http://blog.thomaslebrun. net/2011/11/jquery-calling-a-wcf-service-from-jquery/#.UihK6saa5No

ただし、私は常に ServiceReference で呼び出すことはできますが、Jquery では呼び出せない、またはその逆のソリューションになります。

次の簡単なサービスについて、どなたか教えてください。

  • サービスとインターフェースを装飾するために必要な属性
  • すべてのバインディング/エンドポイント/動作/その他を含む Web.config ServiceModel セクション

Jquery (ajax) と .net プロジェクトにサービス参照を追加して、WCF サービスの呼び出しを容易にするには?

それとも、古き良きシンプルな(しかし明らかに強力ではない)amsxに戻るべきですか?

4

1 に答える 1

0

javascript から呼び出される WCF サービスに webhttpbinding を使用しました。

Web.config:

<system.serviceModel>
<services>
  <service name="WCF.TestWCF" behaviorConfiguration="TestWCFBehaviour">
    <endpoint address="" binding="webHttpBinding" contract="WCF.ITestWCF" behaviorConfiguration="TestWCFEndPointBehaviour"></endpoint>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="TestWCFBehaviour">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="TestWCFEndPointBehaviour">
      <enableWebScript/>
      <webHttp/>
    </behavior>
  </endpointBehaviors>
</behaviors>

サービス:

namespace WCF{
[ServiceContract(Namespace = "Saranya")]  
public interface ITestWCF
{
    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml)]
    String HelloWorld();  
}}   



namespace WCF{
[AspNetCompatibilityRequirements(RequirementsMode =
    AspNetCompatibilityRequirementsMode.Allowed)]
public class TestWCF:ITestWCF
{
    public String HelloWorld()
    {                                  
        return "Hello World!!";
    }      
}



    Using Jquery:


 $.post("http://localhost:26850/Service1.svc/HelloWorld?", null, fnsuccesscallback, "xml");
 function fnsuccesscallback(data) {
                    alert(data.xml);          

    }

サービス参照の使用:

 obj = new Saranya.ITestWCF();
                    obj.HelloWorld(fnsuccesscallback);
 function fnsuccesscallback(data) {
                    alert(data.xml);

                }
于 2013-10-17T13:36:11.847 に答える