2011-05-06 84 views
5

好吧,我請求你的智力。我有一個帶有Silverlight應用程序的Web應用程序,它調用了一個ria服務。 ria服務是在Web應用程序內部定義的,其他所有內容都只是花花公子。需要從Silverlight 4調用WCF服務的指導

問題是這樣的。

我的理解是,爲了使silverlight應用程序能夠說話並且知道ria服務是什麼,您需要爲該服務添加服務引用。服務引用定義了ria服務並設置了連接綁定。它添加的其中一個文件是ServiceReference.ClientConfig,它具有連接綁定。在這個應用程序的開發過程中,這是它建立的方式。它在本地和開發服務器上工作得很好。

不幸的是,在部署到客戶端內部服務器時出現問題。此時我參與了其他項目,同時我的同事繼續部署。他很快就對發生的愚蠢錯誤感到沮喪,並招募了一些幫助。這個開發者雖然得到了它的工作,但爲了這麼做,他從Silverlight項目中刪除了服務引用,但是離開了ServiceReference.ClientConfig,它指出了該服務在Web應用程序中的位置(但這就是,沒有定義或關於服務的作用的解釋,我不確定silverlight應用程序應該如何處理它。)。這對我的同事工作站來說是完美的,他已經將這個版本部署到了客戶端的服務器上。

當我打開該項目時,它根本不運行。原因是它不知道我在代碼中使用的是什麼服務。具體來說,它不知道這是(名字改變了澄清):

Imports SilverlightApp.ServiceReference.WebApp.Service

我已清理解決方案,完全刪除並得到了源代碼控制的最新的,先建的web應用程序,並確保asp.net dev服務器正在運行,因此ServiceReference.ClientConfig中的地址正確解析。但是,唉,它仍然不知道什麼是Imports SilverlightApp.ServiceReference.WebApp.Service

因此,爲了讓它在我的工作站上工作,我添加了ServiceReference,但保留了當前連接綁定,以便它與Web應用程序Web配置中的端點匹配。並將進口聲明更改爲Imports SilverlightApp.ServiceReference,一切正常。

這種瘋狂的原因是什麼?!?!

回答

2

你所談論的所有事情都與WCF服務有關,而不是WCF RIA服務。在客戶端應用程序中使用它們時,它們以完全不同的方式工作。

WCF服務將需要服務引用和ServiceReference.ClientConfig。

WCF RIA服務沒有。指向WCF RIA服務的鏈接在底部的Silverlight標籤中的silverlight項目屬性中設置。當您構建它時,將在Generated_Code文件夾中生成客戶端上下文代碼。顯示所有文件,你會看到它。

希望有幫助嗎?

Kevin

+0

Aha。這會很有意義。我的同事確實擁有Generated_WCF_Code文件夾,但我沒有。但是,我已經在項目屬性中設置了鏈接,它仍然不會讓我構建 – keynone 2011-05-06 16:02:03

+0

什麼是構建錯誤?您是否安裝了所有WCF RIA Service工具?另外,請查看您的網站項目設置並檢查Silverlight應用程序是否列在Silverlight應用程序選項卡中。 – 2011-05-06 16:08:47

+0

當我嘗試實例化服務客戶端並調用服務客戶端時發生構建錯誤。當我在工作站上打開項目時,導入參考無法解析。是的,Web項目設置是正確的,我有ria服務工具包。並感謝您的幫助:) – keynone 2011-05-06 16:52:25