当端点地址不为空时,找不到WCF javascript代理

Joh*_*alt 6 .net wcf javascript-debugger

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

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

是否有设置使用正确的路径生成代理?我的服务是我网站的根源.

作品:

<endpoint address="" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />
Run Code Online (Sandbox Code Playgroud)

想要这个(不起作用):

<endpoint address="ajax" 
  behaviorConfiguration="ajaxBehavior" 
  binding="webHttpBinding" 
  bindingConfiguration="webBinding" 
  contract="MyTest.Web.ICustomerService" />
Run Code Online (Sandbox Code Playgroud)

Eug*_*ota 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 共存