2013-03-22 276 views
1

谁能帮我说什么是错用下面的代码WCF Web服务

var BasicHttpBinding = require('wcf.js').BasicHttpBinding 
, Proxy = require('wcf.js').Proxy 
, binding = new BasicHttpBinding() 
, proxy = new Proxy(binding,"http://www.restfulwebservices.net/wcf/WeatherForecastService.svc") 
, message = '<Envelope xmlns=' + 
     '"http://schemas.xmlsoap.org/soap/envelope/">' + 
      '<Header />' + 
       '<Body>' + 
       '<GetCitiesByCountry xmlns="http://www.restfulwebservices.net/ServiceContracts/2008/01">' + 
        '<Country>korea</Country>' + 
        '</GetCitiesByCountry>' + 
       '</Body>' + 
      '</Envelope>' 

proxy.send(message, "http://www.restfulwebservices.net/ServiceContracts/2008/01/IWeatherForecastService/GetCitiesByCountry", function(response, ctx) { 
console.log(response) 
}); 

我提示以下错误:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault> <faultcode xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</faultcode><faultstring xml:lang="en-US">The message with Action 'http://www.restfulwebservices.net/ServiceContracts/2008/01/IWeatherForecastService/GetCitiesByCountry' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</faultstring></s:Fault></s:Body></s:Envelope> 

任何帮助将是非常有帮助。

谢谢

+0

您需要将生成的soap/headers与您从wcf客户端获得的工作请求进行比较 – 2013-07-20 00:12:22

回答

1

Wcf.js只支持soap服务。您无法将Wcf.js用于REST Web服务。

+0

我只想用于soap服务。上面的代码就是它的一个例子。还是有任何其他的.svc我可以在我的代码中使用和使用? – user87267867 2013-03-22 09:37:43

+0

而我知道.svc也是一个肥皂服务。 – user87267867 2013-03-22 09:50:29

+0

@Filburt需要上述代码的帮助。 – user87267867 2013-03-25 03:53:31