仍然是silverlight和WCF设置的新手,所以当我遇到麻烦时,我正在做一些实验。
设置:
我的解决方案有一个网站,一个WCF服务和一个银光应用程序。现在,只需将silver-light项目看作是一个按钮。我已经成功地在silver-light项目中添加了对WCF服务的服务引用。
在服务中公开的方法之一中,我创建了一个system.io.stream-writer对象,向其编写了一个测试行,然后将其关闭。
我在silver-light应用程序中调用这个方法,当它完成时,我将一个矩形变成黄色,以确保a sync方法已经完成。
解决方案的构建没有错误,当我使用silver-light应用程序运行网站并按下按钮时,矩形变成黄色(意味着事件已经完成),但文本文件中没有任何内容。
因此,我查看了completed事件处理程序中的任何错误消息,并肯定得到了以下错误消息:
“尝试向URI 'http://localhost:20436/TransmitData.svc‘发出请求时出错。这可能是由于试图以跨域方式访问服务而没有适当的跨域策略,或者是由于策略不适合SOAP服务。您可能需要与服务的所有者联系以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP头。此错误也可能是由于在web服务代理中使用内部类型而没有使用InternalsVisibleToAttribute属性造成的。有关详细信息,请参阅内部异常。”
因为我是silverlight和WCF的新手,所以我需要一些指针来调试它。
好吧,我也试过了小提琴,这是我得到的信息:
"a:InternalServiceFaultObject引用未设置为object.Object引用的实例,未设置为对象的实例。在WCF.TransmitData.transmitRecord(AttendanceRecord用户)在C:\Users\waqasjafri\Desktop\AttendanceSystem\TransmitData\TransmitData.svc.cs:line 32中在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object实例处的SyncInvoketransmitRecord(Object,Object[],Object[] ),Object[]输入,在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)System.NullReferenceException“的ProcessMessage11(MessageRpc& rpc)
谢谢
发布于 2013-12-17 02:54:53
听起来您需要使用clientaccesspolicy.xml或crossdomain.xml文件将您的服务配置为callable across domain boundaries。
有关更多详细信息,请参阅this question。
https://stackoverflow.com/questions/20618535
复制相似问题