2011-05-05 98 views
1

我需要幫助,試圖在生產服務器上使用https獲取SL4/WCF應用程序。該應用程序完美地使用http,並使用https加載xap並顯示登錄頁面,但在嘗試驗證或進行wcf調用時出現通用錯誤:SL4/WCF不支持HTTPS

「操作過程中發生異常,使得結果無效。請檢查InnerException以瞭解異常詳細信息。「

」[Async_ExceptionOccurred] 參數: 調試資源字符串不可用。關鍵和論據常常提供足夠的信息來診斷問題。請參閱http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60310.0&File=System.dll&Key=Async_ExceptionOccurred

環境是SL4 - MVVM,IIS7,Basic WCF,Silverlight故障行爲類以及使用Asp.net成員資格提供程序進行身份驗證。網站和服務位於相同的目錄中,所以我不認爲存在跨域問題 - 該網站使用http工作並且fiddler不顯示缺少的clientaccesspolicy.xml文件 - 儘管我已經安裝了該文件。在xap加載後,Fiddler不提供任何線索或流量。使用https時,我也可以直接瀏覽並訪問服務。

任何幫助或建議,將不勝感激。 謝謝, 最大。

這裏的web.config中:

<extensions> 
    <behaviorExtensions> 
    <add name="silverlightFaults" type="Accruit.RidgeLine.Behaviors.SilverlightFaultBehavior, Accruit.RidgeLine.Behaviors, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    </behaviorExtensions> 
</extensions> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="silverlightBehavior"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" httpsHelpPageEnabled="true" /> 
    </behavior> 
    <behavior name=""> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" httpsHelpPageEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 

    <endpointBehaviors> 
    <behavior name="SilverlightFaultBehavior"> 
     <silverlightFaults /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 

<services> 
    <service name="Accruit.RidgeLine.Web.BankingService" behaviorConfiguration="silverlightBehavior" > 
    <!-- Endpoint for Standard SOAP clients --> 
    <endpoint address="" contract="Accruit.RidgeLine.Web.IBankingService" 
       binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IBankingService"/> 
    <!-- Endpoint for Silverlight clients --> 
    <endpoint address="SilverlightEndPoint" contract="Accruit.RidgeLine.Web.IBankingService" 
       binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IBankingService_SilverlightEndPoint" 
       behaviorConfiguration="SilverlightFaultBehavior" /> 
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 


<client> 
    <endpoint address="https://domainname.com/BankingService.svc" 
     binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IBankingService" 
     contract="BankingService.IBankingService" name="BasicHttpBinding_IBankingService" /> 

    <endpoint address="https://domainname.com/BankingService.svc/SilverlightEndPoint" 
     binding="basicHttpBinding" bindingConfiguration="basicHttpBinding_IBankingService" 
     contract="BankingService.IBankingService" name="basicHttpBinding_IBankingService_SilverlightEndPoint" /> 
</client> 

+0

您是否按照說明進行操作?在我看來,遵循指示會導致你到本地更多的描述性錯誤信息機... 要在本地計算機上查看這些描述性錯誤消息並獲取其他調試資源,請在Windows或Mac計算機上安裝最新版本的Silverlight for Developers。 – 2011-05-05 23:38:39

回答

0

除了我的評論,這裏有幾件事情要檢查:

Great link here,檢查sladapters發佈。

這是Silverlight Deployment Guide,剛剛推出,可從MS獲得。那裏非常穩固。

我遇到的很多問題都與在ServiceReference.ClientConfig文件中爲本地計算機編碼的端點地址有關。我保留一份開發拷貝&在我的解決方案中的部署副本。鑑於您可以導航到該服務的事實,它可能被引用錯誤在這裏...

0

該應用程序已經與Silverlight Web項目中包含的wcf服務一起構建,綁定uri也正在使用Uri以編程方式覆蓋(Application.Current.Host.Source,「..」)。我將wcf服務分離到他們自己的項目中,並刪除了uri代碼(這導致了防火牆和dsn訪問問題,因爲443被轉發到另一個端口)。雖然在使用自簽名ssl證書時遇到了問題,所以我們必須在Silverlight客戶端與wcf服務進行通信之前購買有效的證書。