6

我正在尝试使用 enableWebScript 端点行为设置具有多个端点的 WCF 服务,其中一个端点使用 enableWebScript 端点行为,以便在客户端(jsdebug/js)上创建 Javascript 代理。

将服务引用添加到我的 AJAX ScriptManager 时,找不到 jsdebug 文件,除非端点的地址为空。ScriptManager 代理似乎总是生成“MyService.svc/jsdebug”的路径来查找文件,即使我的服务的地址是“ajax”。代理应将路径生成为“MyService.svc/ajax/jsdebug”。

是否有设置以正确的路径生成代理?我的服务是我网站的根。

作品:

<endpoint address="" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />

想要这个(不起作用):

<endpoint address="ajax" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />
4

2 回答 2

2

<enableWebScript />也称为支持 AJAX 的端点,本质上是对与地址有关的所有内容进行硬编码,因此您可以生成客户端代码。

它的硬编码方式是一切都与 .svc 文件直接相关。

请参阅如何:使用配置添加 ASP.NET AJAX 端点

端点配置在相对于 .svc 文件的空地址,因此该服务现在可用并且可以通过发送请求来调用 service.svc/<operation>- 例如, service.svc/Add对于Add操作。

出于这个原因,你不能与 混合<enableWebScript />UriTemplate在我看来,这会带走 WCF 的一半乐趣。请参阅enableWebScript、UriTemplate 和 HTTP 方法

就个人而言,我喜欢配置我的 URI 并同时提供 POX 和 JSON 以及 SOAP。请参阅WCF RESTful POX、JSON 和 SOAP 共存

于 2009-03-28T04:30:57.110 回答
1

在 ScriptManager 中,放置 MyService.svc/ajax 而不是 MyService.svc

于 2009-08-12T00:23:07.483 回答