2012-07-02 139 views
0

我有一個Silverlight 5應用程序從另一個項目(我的解決方案有一個Silverlight項目和一個Web項目)中的啓用Silverlight的WCF服務獲取數據。有許多類似的帖子,但他們指的是託管在Web服務器上的Web服務(正確的Web服務)。Silverlight應用程序中的WCF服務

我知道我必須告訴應用程序在dev和prod中哪裏可以找到服務。在開發中,你通常會有一個端口。我的代碼來創建一個服務客戶端(用正確的EndpointAddress)是這樣的:

BasicHttpBinding binding = new BasicHttpBinding(
     Application.Current.Host.Source.Scheme.Equals("https", StringComparison.InvariantCultureIgnoreCase) 
     ? BasicHttpSecurityMode.Transport : BasicHttpSecurityMode.None); 
binding.MaxReceivedMessageSize = int.MaxValue; 
binding.MaxBufferSize = int.MaxValue; 
Uri tempUri = new Uri("../PolicyDataService.svc", UriKind.Relative); 
EndpointAddress servAddr = new EndpointAddress(tempUri); 
PolicyDataServiceClient temp = new PolicyDataServiceClient("BasicHttpBinding_PolicyDataService", servAddr); 
return temp; 

現在,我要去哪裏錯了?在開發中,一切工作正常,但在prod中,服務永遠不會被調用。謝謝!

回答

0

我不知道發生了什麼事情,但這裏有幾件事情,如果你還沒有準備好,你可以嘗試:

  1. 瀏覽到PROD SVC文件,確保您可以訪問它(http://yoursite/PolicyDataService.svc)
  2. 將您的代碼指向prod位置並確保您可以無任何問題地連接。這樣做通常會揭示問題是什麼,只要您可以連接即可。

由於您使用BasicHttpBinding,因此您不應該遇到綁定的安全問題。我知道這很基本,但必須從某個地方開始。

+0

所以說清楚一點,你說的是在文件系統上使用svc而不是將其稱爲「內存中」。正確? – sshirley

相關問題