为长篇文章道歉,但我想尽可能多地提供信息。所以我现在一直在努力让我的WCF服务与我的silverlight应用程序一起正常工作。我最初部署它,一切运行顺利。
然而,在我对其中一种方法进行更新后,它从未起作用。我使用SVN存储我的工作,甚至回到项目的早期版本并重新部署它没有帮助。请有人帮助我:(
如果我通过VS2012运行我的silverlight应用程序,它可以正常工作所有对服务的调用,并检索正确的信息。但是,如果我在部署silverlight应用程序后触发相同的调用,则会收到以下错误之一:
An exception occurred during the operation, making the result invalid. Check InnerException for exception details.
at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
at OrionDashboard.OrionWebService.GetTestDataCompletedEventArgs.get_Result()
at OrionDashboard.MonthlyOverview.OrionWebService_GetTestDataCompleted(Object sender, GetTestDataCompletedEventArgs e)
at OrionDashboard.OrionWebService.OrionWebServiceClient.OnGetTestDataCompleted(Object state)
或者
[Async_ExceptionOccurred] Arguments: Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.51204.0&File=System.dll&Key=Async_ExceptionOccurred at
其余错误对应于另一条错误消息的onComplete事件错误。
同样,只有当它部署到服务器上的IIS时才会发生这种情况,并且只有在我重新部署更新后才开始发生
我已经使用VS2012附带的WCF Storm和WCF测试客户端来测试网络上部署的服务,并且所有合同都没有任何问题地返回所有内容。
这是ServiceReferences.ClinetConfig:
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_OrionWebService">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://localhost:53493/OrionWebService.svc"
binding="customBinding"
bindingConfiguration="CustomBinding_OrionWebService"
contract="OrionWebService.OrionWebService"
name="CustomBinding_OrionWebService" />
</client>
</system.serviceModel>
我完全没有对我引用服务项目时自动生成的内容进行任何更改。我认为可能是这一行:“http:// localhost:53493 / OrionWebService.svc”
因为在fiddler中我在crossdomain.xml和clientaccesspolicy.xml上收到以下错误
[Fiddler]与localhost的套接字连接失败。 ErrorCode:10061。 由于目标机器主动拒绝它[:: 1]:53493
,因此无法建立连接然而,当我将xap更改为zip文件并修改ServiceReference.ClientConfig以指向与您想要检查服务时相同的服务地址时,例如“http://ServerName/OrionDashboard/OrionWebService.svc”我仍然从silverlight获得相同的错误,然后从这两个文件中获得404错误。
这是web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true"
targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<binding name="OrionDashboard.Web.OrionWebService.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="OrionDashboard.Web.OrionWebService">
<endpoint address=""
binding="customBinding"
bindingConfiguration="OrionDashboard.Web.OrionWebService.customBinding0"
contract="OrionDashboard.Web.OrionWebService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
</configuration>
与ServiceReference一样,web.config也是独一无二的,因为我真的不明白它的大部分含义。但是当我第一次部署silverlight应用程序时,我就把它保留了下来,正如前面提到的那样它工作正常。
我不相信它是一个数据库问题,因为它在本地运行时没有任何问题,服务也会使用已部署服务中的正确数据进行响应。
该服务似乎运行正常,WCF测试客户端或WCF Storm应用程序未报告任何问题
在VS2012中发布wcf服务时,它不会将服务与客户端分开,也不会创建crossdomain.xml或clientaccesspolicy.xml,因此我在发布后手动添加了这些服务。不确定这可能是原因吗?
我完全迷失了,到目前为止我发现的每一项工作对我都没有用。请有人至少指出我正确的方向吗?