2008-09-12 51 views
4

我有一個從客戶端JavaScript調用的WCF服務。調用失敗,服務爲空JavaScript錯誤。 WebDevelopment幫助程序跟蹤顯示加載jsdebug支持文件的調用會導致404(文件未找到)錯誤。WCF服務支持文件jsdebug無法加載

重新啓動IIS或清除出臨時ASP.Net文件或在web.config中的彙編代碼中設置一批=「假」不能解決問題

從瀏覽器

https://Myserver/MyApp/Services/MyService.svc顯示服務元數據

然而

https://Myserver/MyApp/Services/MyService.svc/jsdebug導致404

該問題似乎與https協議有關。用http/jsdebug下載支持的JS文件。

任何想法?

TIA

回答

11

想通了!

這裏是web.config中的服務配置部分

看端點上的bindingConfiguration屬性。值「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> 

注意,bindingConfiguration屬性應該是空的(「」),如果該服務是通過HTTP訪問,而不是HTTPS(沒有證書的本地計算機上進行測試時)

希望這可以幫助別人。

0

如果在完成所有可能的工作後仍然出現相同的錯誤。只需添加一個「啓用AJAX的WCF服務」。

+1

提供了一個相關的代碼和你的解釋 – 2013-09-06 08:42:35

0

對我來說,問題如下:我們將MVC添加到具有路由的解決方案中。我們的WCF服務不被忽視。我通過添加以下規則解決了這個問題(其中「WCF」是我們保留服務的文件夾)。

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

希望能節省幾個小時。