【问题标题】:WCF Service support file jsdebug fails to loadWCF服务支持文件jsdebug加载失败
【发布时间】:2010-09-08 17:17:11
【问题描述】:

我有一个从客户端 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 协议有关。用http /jsdebug 下载配套的JS文件。

有什么想法吗?

TIA

【问题讨论】:

    标签: asp.net wcf javascript-debugger


    【解决方案1】:

    想通了!

    这是来自 web.config 的服务配置部分

    查看端点上的 bindingConfiguration 属性。值“webBinding”指向绑定中的绑定 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 属性应该为空(“”)

    希望这对某人有所帮助。

    【讨论】:

      【解决方案2】:

      如果在完成所有可能的工作后仍然出现相同的错误。只需添加“启用 AJAX 的 WCF 服务”即可。

      【讨论】:

      • “只需添加启用 AJAX 的 WCF 服务”究竟是怎么回事?
      【解决方案3】:

      对我来说,问题如下;我们将 MVC 添加到带有路由的解决方案中。我们的 WCF 服务没有被忽视。我通过添加以下规则解决了这个问题(其中“WCF”是我们保存服务的文件夹)。

      routes.IgnoreRoute("WCF/{*pathInfo}");
      

      希望能节省几个小时。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-24
        • 2015-07-30
        • 2010-12-28
        • 1970-01-01
        • 2018-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多