【发布时间】:2013-12-16 18:51:15
【问题描述】:
silverlight 和 WCF 设置还是新手,所以当我遇到麻烦时正在做一些实验。
设置:
我的解决方案有一个网站、一个 WCF 服务和一个 Silver-light 应用程序。现在只需将银色灯光项目视为一个按钮。我已成功在 silver-light 项目中添加了对 WCF 服务的服务引用。
在服务中公开的一种方法中,我创建了一个 system.io.stream-writer 对象,向其写入测试行,然后将其关闭。
我在 silver-light 应用程序中调用此方法,完成后我将矩形变为黄色以确保同步方法已完成。
解决方案构建没有错误,当我使用 silver-light 应用程序运行网站并按下按钮时,矩形变为黄色(表示事件已完成)但文本文件中没有写入任何内容。
所以我查看了已完成事件处理程序中的任何错误消息,并且肯定收到了以下错误消息:
“尝试向 URI 'http://localhost:20436/TransmitData.svc' 发出请求时出错。这可能是由于尝试以跨域方式访问服务而没有适当的跨域策略或策略不适合 SOAP 服务。您可能需要联系服务的所有者发布跨域策略文件,并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于在不使用 InternalsVisibleToAttribute 属性的 Web 服务代理。有关详细信息,请参阅内部异常"
由于我是 silverlight 和 WCF 的新手,因此我需要一些指针来调试它。
好吧,我也尝试了提琴手,这是我得到的消息:
"a:InternalServiceFaultObject 引用未设置为对象的实例。对象引用未设置为对象的实例。在 C:\Users\waqasjafri\Desktop\AttendanceSystem\ 中的 WCF.TransmitData.transmitRecord(AttendanceRecord 用户) TransmitData\TransmitData.svc.cs: SyncInvoketransmitRecord(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) 的第 32 行.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.MessageRpc .Process(Boolean isOperationContextSet)System.NullReferenceException"
谢谢
【问题讨论】:
-
要调试服务问题,请使用附加到进程并将调试器附加到运行服务的 IIS 应用程序池(w3wp.exe 进程)。您应该能够在服务方法中设置断点并获取更多信息。
标签: c# .net wcf silverlight