我有一个从客户端 JavaScript 调用的 WCF 服务。调用失败并出现 Service is null JavaScript 错误。 WebDevelopment 帮助程序跟踪显示加载 jsdebug 支持文件的调用导致 404(找不到文件)错误。
重新启动 IIS 或清除 Temp ASP.Net 文件或在 web.config 中的编译标记上设置 batch="false"不能解决问题
从浏览器
https://Myserver/MyApp/Services/MyService.svc显示服务元数据
然而
https://Myserver/MyApp/Services/MyService.svc/jsdebug结果是404。
问题似乎与 https 协议(protocol)有关。使用 http/jsdebug 下载支持的 JS 文件。
有任何想法吗?
TIA
最佳答案
弄清楚了!
这是 web.config 中的服务配置部分
查看端点上的 bindingConfiguration 属性。值“webBinding”指向绑定(bind)中的绑定(bind) name="webBinding"标记,这就是告诉服务使用 HTTPS 传输级安全性的原因。在我的情况下,属性值为空,导致通过 HTTPS 对/js 或/jsdebug 文件的 Web 服务请求失败并引发 404 错误。
<services>
<service name="MyService">
<endpoint address="" behaviorConfiguration="MyServiceAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="Services.MyService" />
</service>
</services>
<bindings>
<webHttpBinding>
<binding name="webBinding">
<security mode="Transport">
</security>
</binding>
</webHttpBinding>
</bindings>
请注意,如果通过 http 而不是 https 访问服务,则 bindingConfiguration 属性应该为空(“”)(在没有证书的本地机器上测试时)
希望这可以帮助某人。
关于asp.net - WCF服务支持文件jsdebug加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59181/