【发布时间】:2011-12-31 10:00:23
【问题描述】:
我想知道如何在我的 Silverlight 应用程序中使用普通的 WCF 服务(不是启用 Silverlight 的 WCF 服务)。这是我尝试过的
- 我创建了一个简单的普通 WCF 服务
- 我在
web.config文件中将绑定更改为basicHttpBinding - 我已将
clientaccesspolicy.xml和crossdomain.xml文件放在wwwroot文件夹中。
但即使我无法使用 WCF 服务。我得到了这个例外
System.ServiceModel.CommunicationException 未被用户代码处理
消息=尝试向 URI 发出请求时发生错误 'http://localhost/HWT/HelloWorldService.svc'。这可能是由于 试图以跨域方式访问服务而没有适当的 跨域策略,或不适合 SOAP 的策略 服务。您可能需要联系服务的所有者来发布 跨域策略文件并确保它允许与 SOAP 相关的 HTTP 要发送的标头。此错误也可能是由于使用内部 键入 Web 服务代理而不使用 InternalsVisibleToAttribute 属性。请查看内部异常 了解更多详情。
堆栈跟踪:
在 System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult 结果)
在 System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult 结果)
在 System.ServiceModel.ClientBase1.ChannelBase1.EndInvoke(字符串 方法名、对象[] 参数、IAsyncResult 结果)
在 ServiceRef.HelloWorldServiceClient.HelloWorldServiceClientChannel.EndGetName(IAsyncResult 结果)
在 ServiceRef.HelloWorldServiceClient.TestSilClient.ServiceRef.IHelloWorldService.EndGetName(IAsyncResult 结果)
在 TestSilClient.ServiceRef.HelloWorldServiceClient.OnEndGetName(IAsyncResult 结果)
在 System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult 结果)内部异常:System.Security.SecurityException
消息=""
堆栈跟踪:
在 System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback 开始方法,对象状态)
在 System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult 异步结果)
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult 结果)内部异常:System.Security.SecurityException
消息=安全错误。
堆栈跟踪:
在 System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult 异步结果)
在 System.Net.Browser.BrowserHttpWebRequest.c_DisplayClass5.b_4(Object 发送状态)
在 System.Net.Browser.AsyncHelper.c_DisplayClass4.b_1(对象 发送状态)
谁能解释在 Silverlight 应用程序中使用普通 WCF 服务的最佳方式是什么?一个例子会帮助我。
谢谢。
【问题讨论】:
-
您能否向我们展示您的
web.config文件中的相关部分? (<system.serviceModel>部分内的任何内容)。这是一个安全例外 - 所以我认为这与您的网络服务期望用户进行身份验证的方式有关。 -
嗯,否则你能连接到服务吗?您可以使用 WcfTestClient 调用它吗?如果您设法在同一个站点上同时拥有 silverlight 应用程序和服务,您可以调用它吗? (这是我开始关注@marc_s 观察的地方)
标签: wcf silverlight-4.0 wcf-security wcf-client