3

有人可以解释两者之间的区别,何时使用 WebScriptServiceHostFactory 与 WebServiceHostFactory?我知道他们在使用时会在端点上设置某些默认行为,所以我不必这样做。否则差异,是否只是 WebScriptServiceHostFactory 默认为 JSON 消息,而 WebServiceHostFactory 默认为 XML(soap 消息)?使用 WebGet 和 WebInvoke,两者都可以工作,还是不允许?我也可以使用 UriTemplates 来构建 REST 服务吗?

4

1 回答 1

4

WebScriptServiceHostFactory几乎专门用于定义将由 ASP.NET AJAX 框架使用的服务(它为 JS 客户端提供了一个可用于调用服务的“代理”)。如果您正在执行通用 WCF Web (REST) 编程,则应坚持使用WebServiceHostFactory.

一些区别:

  • 如您所述,默认响应格式不同(WScriptSHF 中的 JSON,WSHF 中的 XML)
  • WSHF 完全支持 UriTemplates,而不是 WScriptSHF
  • WebGet 和 WebInvoke 都适用,但在 WScriptSHF 上,唯一支持的正文样式是WrappedRequest
  • 对由 WScriptSHF 创建的端点的调用的响应包装在 JSON 对象中;如果对操作的响应(以 JSON 格式)为[1,2,3],则端点将其返回为{"d":[1,2,3]}.

可能还有其他的,但基本上,指导是仅当您使用 ASP.NET AJAX 框架(带有<asp:ScriptManager>)和 WSHF 时才使用 WScriptSHF。

于 2013-03-01T18:56:49.980 回答