我需要帮助尝试在生产服务器上使用https获取SL4 / WCF应用程序。该应用程序完美地使用http,并使用https它将加载xap并显示登录页面,但在尝试进行身份验证或进行wcf调用时出现一般错误:
“操作期间发生异常,导致结果无效。检查InnerException以获取异常详细信息。“
“[Async_ExceptionOccurred] 参数: 调试资源字符串不可用。通常,密钥和参数提供了足够的信息来诊断问题。见http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60310.0&File=System.dll&Key=Async_ExceptionOccurred“
环境是SL4 - MVVM,IIS7,基本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 :(得分:0)
除了我的评论之外,还有一些要检查的内容:
Great link here,请查看sladapters帖子。
这是最近刚刚推出的Silverlight Deployment Guide,可从MS获得。那里非常坚固的东西。
我遇到的很多问题都与为ServiceReference.ClientConfig文件中的本地计算机编码的端点地址有关。我保留了一份开发副本&amp;我的解决方案中的部署副本。鉴于您可以导航到该服务,它可能在这里引用错误...
答案 1 :(得分:0)
应用程序是使用Silverlight Web项目中包含的wcf服务构建的,绑定uri也是使用Uri(Application.Current.Host.Source,“..”)以编程方式覆盖的。我将wcf服务分离出来进入他们自己的项目并删除了uri代码(这导致了防火墙和dsn访问问题,因为443被转发到另一个端口)。我仍然遇到使用自签名证书的问题,所以我们不得不在之前购买有效的证书。 Silverlight客户端将与wcf服务进行通信。