我一直在尋找這個答案,所有我發現的是這link,但是當我試圖按照教程,我失敗了。我需要的是將我的Silverlight應用程序連接到數據庫,以顯示特定表中的信息。因爲我不想爲我的頁面和我的silverlight應用使用相同的ORM,所以我創建了一個新的WCF webservice項目,並在其中創建了我的LINQ to SQL類。如何將我的Silverlight應用程序連接到WCF服務?
我測試了我的WCF服務,它工作正常,但不知怎的,我的Silverlight應用程序沒有達到它。我更改了web.config文件,現在看起來如下所示。
我的web.config
<?xml version="1.0"?> <configuration>
<connectionStrings>
<add name="bd_webportosConnectionString" connectionString="Data Source=BARNEY\DEV;Initial Catalog=bd_webportos;User ID=sa;Password=Stigeo_1_adm_1"
providerName="System.Data.SqlClient" /> </connectionStrings> <system.web>
<compilation debug="true" targetFramework="4.0" /> </system.web> <system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="basicHttpBindingConfig">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:7298/DataToSilverlight.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
contract="DataRetrieverReference.IService1" name="BasicHttpBinding_IService1" />
</client>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information
-->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> </system.serviceModel> <system.webServer>
<modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration>
我不知道如何解決這個問題。雖然我陷入困境,但我努力繼續前進,但隨後又陷入了下一步,那就是將服務引用添加到我的Silverlight應用程序中。當我嘗試做它說,將顯示以下信息:
有從下載地址 元數據的錯誤。請 確認您已輸入有效的 地址。
我通過WCF測試客戶端測試了該服務,它工作正常,但我的silverlight應用程序無法訪問它。我得到以下異常:
,同時努力使 到URI 「http://localhost:7298/DataToSilverlight.svc」的請求時發生錯誤。 這可能是由於嘗試以 以跨域方式訪問服務 而沒有適當的跨域策略 或者是不適合SOAP服務的 策略。您可能需要 聯繫 服務的所有者以發佈跨域 策略文件並確保允許發送與SOAP相關的HTTP標頭 。 此錯誤也可能是由於在Web服務 代理中使用 內部類型而不使用 InternalsVisibleToAttribute屬性造成的。 請參閱 的內部例外更多詳情。
你們能幫我解決這個大問題,或者甚至用另一種方式來實現我想要的嗎?
我最近也發現我的crossdomain.xml沒有加載......但我不知道這意味着什麼。
您應該將標題更改爲「如何將Silverlight連接到WCF服務?」因爲這與數據庫無關,而是與客戶端服務器通信。 – 2010-08-24 19:04:44