我已按照此处的教程:http://www.silverlight.net/learn/tutorials/sqldatagrid-cs/
ANSWER :当我在调试器中运行此东西时,它在端口16048上启动它。同时,ServiceReferences.ClientConfig使用端口15459获得端点地址。不知道为什么会这样做,但是一旦我改变它所以它正在访问端口16048上的服务,它很好。我注意到端口有所不同,但是出于某些理智的原因,它假设它正在使用不同的端口进行服务。当我们假设时,我们都知道我们是谁,我们不是......
底线:右键单击解决方案资源管理器中的服务项目,属性|网络|特定港口
在本教程中,您将创建一个简单的Silverlight XAP,在同一解决方案中创建RIA服务,并从Silverlight调用该服务。我一直在使用内置的Web服务器在VS2010中运行它。当对服务的异步调用完成时,结果的_error设置为System.ServiceModel.CommunicationException(见下文)。
我不能过分强调服务和Silverlight应用程序都在同一台机器上,同一台物理计算机放在我的桌面上。我添加了crossdomain.xml和clientaccesspolicy.xml
本教程是从2008年开始的,在某些方面似乎已经过时了。 RIA似乎很方便,但Silverlight根本不支持它吗? MS已经放弃了WCF和/或RIA吗?是否有其他新方法可以将数据从服务器获取到Silverlight?什么是域名服务?那个更好吗?这是最后一件大事还是下一件大事?怎么跟踪谁?
e._error {System.ServiceModel.CommunicationException:错误 尝试向URI发出请求时发生
'http://localhost:15459/Service1.svc'
。这可能是由于尝试 在没有适当的情况下以跨域方式访问服务 适当的跨域策略,或不适合SOAP的策略 服务。您可能需要联系服务所有者进行发布 跨域策略文件,并确保它允许与SOAP相关的HTTP 要发送的标头。使用内部也可能导致此错误 Web服务代理中的类型,而不使用 InternalsVisibleToAttribute属性。请查看内部异常 更多细节。 ---> System.Security.SecurityException ---> System.Security.SecurityException:安全性错误。在 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult的 asyncResult)at System.Net.Browser.BrowserHttpWebRequest<> c__DisplayClass5.b__4(对象 sendState)at System.Net.Browser.AsyncHelper<> c__DisplayClass2.b__0(对象 sendState)---内部异常堆栈跟踪结束--- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod,Object state)at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult的 asyncResult)at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult的 结果)---内部异常堆栈跟踪结束--- at System.ServiceModel.AsyncResult.End [TAsyncResult](IAsyncResult结果) 在 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果)在 System.ServiceModel.Channels.ServiceChannel.EndCall(String action, 对象[]出,IAsyncResult结果)at System.ServiceModel.ClientBase1.ChannelBase
1.EndInvoke(字符串 methodName,Object [] args,IAsyncResult result)at SilverlightApplication1.ServiceReference1.Service1Client.Service1ClientChannel.EndGetITEM_THINGs(IAsyncResult的 结果)在 SilverlightApplication1.ServiceReference1.Service1Client.SilverlightApplication1.ServiceReference1.IService1.EndGetITEM_THINGs(IAsyncResult的 结果)在 SilverlightApplication1.ServiceReference1.Service1Client.OnEndGetITEM_THINGs(IAsyncResult的 结果)在 System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult的 结果)} System.Exception {System.ServiceModel.CommunicationException}
答案 0 :(得分:1)
从错误消息中,我猜您的clientaccesspolicy.xml文件不在正确的位置(必须位于服务的根目录中),或者未配置为允许访问该服务。有关使用Silverlight访问服务的更多信息,请查看HTTP Communication and Security with Silverlight。
Microsoft尚未放弃WCF和/或RIA。