WebInvoke
属性
合同)webHttp
绑定使服务成为RESTful,主机是否也可以拥有其他端点? (wsHttp
或netTcp
)aspNetCompatibilityEnabled
设置为true(并且此设置可以与其他端点共存)ScriptManager
在客户端上进行WCF调用。我为什么要用另一个呢?答案 0 :(得分:4)
答案
没有。
AJAX通常用于发送简单的HTTP GET(“REST”)请求。它不一定是这样。您还可以使用SOAP信封格式化有效内容,并将其POST到端点。在这种情况下,WCF服务至少必须是wsHttp
或basicHttpBinding。这是an example of using VBScript to create and send a SOAP request,但你可以在Javascript中做同样的事情。您不能使用更高级的SOAP扩展,如WS-Security,XML DigSig等。好吧,你可能但这是不切实际的。例如,我不知道Javascript中的任何XML规范化库,这对于执行WS-Security或数字签名至关重要。有17个类似的障碍。结果:从Javascript调用时,您无法使用更高级的SOAP扩展
。
如果你使用jQuery ajax,你需要在ajax请求上使用beforeSend
回调来设置SOAPAction头。
。
话虽如此,在Javascript程序中处理json要比处理XML文档的DOM要容易得多。换句话说,在从Javascript连接到WCF而不是SOAP时,最好使用JSON / REST。我想有时它不是一种选择。
是的
WCF服务可以有多个端点,它们可以侦听相同或不同的传输,例如HTTP,net.tcp,net.pipe或net.msmq。
没有。 aspNetCompatibilityEnabled
只是在服务器上启用了一些类似ASMX的功能。它会影响服务的设计方式,并且与邮件签名无关。它确实排除了使用非HTTP协议。有关详情,请参阅Wenlong Dong's article。
关于在客户端使用哪个框架 - 哪个更容易?我没有使用ScriptManager的经验,但决策标准非常简单。 jQuery工作正常,如果你已经使用jQuery,它是合适的。如果您没有或不想要jQuery,可以使用XmlHttpRequest发送SOAP或REST请求。如果这些不合适,请使用其他东西。