2010-02-19 121 views
1

問:Silverlight的WCF服務對服務請求

是否有作出該調用從Silverlight的其他服務的服務調用的已知問題?

場景:

我有以下3個項目:

  1. SilverlightClient - 承載SilverlightClient Web應用程序 - 一個按鈕

  2. SilverlightClient.Web Silverlight項目。 XAP。

  3. 後端 - 一個不同的網絡應用程序,承載FOO服務,做一些特殊的後端處理。

我在SilverlightClient.Web和後端都創建了Silverlight WCF支持的Web服務。這些分別是SilverlightClientServiceBackEndService

SilverlightClient.Web我添加一個服務引用BackEndService。我有一個測試ASPX頁面,我寫了代碼,成功地調用BackEndService

SilverlightClient我添加一個服務引用SilverlightClient.WebSilverlightClientService。如果我的SilverlightClientService返回諸如字符串之類的純數據,則它工作得很好。

的時刻,但是,我改變SilverlightClientService調用BackEndService,我得到以下異常:

HTTP 415 - 「請求,HTTP狀態415失敗:不支持的媒體類型。」

回答

1

我有2個服務不通信的問題。我們最終發現,使用Cassini(內置Visual Studio IIS)來託管ListenerService'BackEnd'導致了這個問題。將項目切換到在IIS的虛擬目錄中啓動允許二者進行通信。

我看到:接收到對http://localhost:1484/MainListenerService.cs的HTTP響應時發生錯誤。這可能是由於服務端點綁定不使用HTTP協議。這也可能是由於HTTP請求上下文被服務器中止(可能是由於服務關閉)。查看服務器日誌獲取更多詳細信並且此錯誤: HTTP請求被禁止,客戶端身份驗證方案爲「匿名」。

0

你使用的是basicHttpBinding嗎? Silverlight只支持basicHttpBinding,但創建WCF服務時的默認值是wsHttpBinding。在你的Silverlight項目中添加引用之前,你應該改變你的web.config。看看Tim Heuer的這段視頻:http://silverlight.net/learn/videos/all/how-to-consume-wcf-and-aspnet-web-services-in-silverlight/

+0

嘿Arturo,支持WCF的Silverlight服務是basicHttp,所以我在提問中注意到了這一點。 – t3rse 2010-02-24 21:03:12