非.NET程序调用WCF需要注意的地方

Comments Off , Tagged : ,

最近想学着用用WCF,不过开发上可能不止.net本身要调用到,还有asp,php,js之类的也有可能需要直接调用,所以找了些资料,看看需要怎么设置。下面以jQuery的AJAX调用为例,并说说需要注意的

<script type=”text/javascript”>
$(“#execute”).bind(“click”, function() {
  $.ajax({
    url: “http://localhost:XXXX/Calculator.svc/Subtract”,
   data: “x=1&y=2,
    //data:’{“x”:10,”y”:200}’, //FOR type:”post”
    type: “get”,
    dataType:”json”,
    contentType: “application/json”,
    success: function(result) {
      alert(result.d);
    }
  });
});
</script>

这里可以没有dataType,但不能没有contentType,因为不加contentType,会报错,而还要加dataType:”json”的原因是使返回的结果为json格式,不加的话是字符串。

使用get方式,data的数据格式和平时一样;而post方式,data默认是JSON格式。

(PS:{“x”:10,”y”:200},x与y引号是必须的,这点和调用web服务有点不同)

WCF设置需要注意的地方:

一:在.svc文件加上Factory=”System.ServiceModel.Activation.WebScriptServiceHostFactory” 属性,不加会报错,至于为什么,这句是什么意思,目前我不懂,呵呵,接下来继续学。

二:web.config的设置,

<endpoint address=”" binding=”webHttpBinding” contract=”WcfService.ICalculator”/>

注意binding的值,是”webHttpBinding”,我添加服务时,它是”wsHttpBinding”