WCF 服务支持文件 jsdebug 无法加载
-
09-06-2019 - |
题
我有一个从客户端 JavaScript 调用的 WCF 服务。调用失败并出现 Service is null JavaScript 错误。WebDevelopment 帮助程序跟踪显示加载 jsdebug 支持文件的调用会导致 404(文件未找到)错误。
重新启动 IIS 或清除临时 ASP.Net 文件或在 web.config 中的编译标记上设置 batch="false" 无法解决问题
从浏览器
https://Myserver/MyApp/Services/MyService.svc 显示服务元数据
然而
https://Myserver/MyApp/Services/MyService.svc/jsdebug 结果是 404。
问题似乎与 https 协议有关。使用 http /jsdebug 下载支持的 JS 文件。
有任何想法吗?
TIA
解决方案
弄清楚了!
这是 web.config 中的服务配置部分
查看端点上的绑定配置属性。值“webBinding”指向绑定中的绑定名称=“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 属性应为空 ("")
希望这对某人有帮助。
其他提示
如果在完成所有可能的工作后您仍然遇到相同的错误。只需添加“AJAX Enabled WCF-Service”即可。
对我来说,问题如下:我们将 MVC 添加到带有路由的解决方案中。我们的 WCF 服务并没有被忽视。我通过添加以下规则解决了这个问题(其中“WCF”是我们保存服务的文件夹)。
routes.IgnoreRoute("WCF/{*pathInfo}");
希望这可以节省某人几个小时。