如何在Silverlight中访问工作流服务?

时间:2011-08-25 04:22:21

标签: silverlight-4.0 workflow-foundation-4 workflowservice

我有一个名为GetDataWorkflowService.xamlx的worflow服务,我想在Silverlight中使用。

当我向我的应用程序添加服务引用时,它会显示一条消息“相对URI不支持此操作”。但是,它仍然添加了引用。

当我使用引用时:

Servicelient proxy=new ServiceClient();
proxy.GetDataCompleted += (o, a) => Debug.WriteLine("Result is " + a.Result);
proxy.GetDataAsync(123);

我收到以下错误:

  

尝试向URI“http:// localhost:1234 / GetDataWorkflowService.xamlx”发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。在不使用InternalsVisibleToAttribute属性的情况下,在Web服务代理中使用内部类型也可能导致此错误。有关更多详细信息,请参阅内部异常。

我不明白发生了什么。

2 个答案:

答案 0 :(得分:0)

一些事情:

  • 如果使用WCF测试客户端调用GetData()会发生什么?你得到一个错误还是做得很好。如果您在此处收到错误,请专注于服务器部件。
  • 如果从控制台应用程序设置服务引用并调用工作流服务,会发生什么情况。相同的错误或有效吗?
  • 工作流服务是否与Silverlight客户端托管在同一网站中?如果没有,您是否正确设置了跨域策略文件。
  • 假设WCF测试客户端正常工作。打开fiddler并将Silverlight客户端的请求与WCF测试客户端的请求进行比较。有什么不同?
  • 在服务器上启用跟踪,以查看是否有任何异常或警告可以提供更多有关错误的信息。

答案 1 :(得分:0)

检查您的启动项目以确保您正在启动Web项目而不是Silverlight项目。有关详情,请参阅我博客上的Troubleshooting Workflow Services / Silverlight