【问题标题】:How do I access a workflow service in silverlight?如何在 silverlight 中访问工作流服务?
【发布时间】:2011-08-25 04:22:21
【问题描述】:

我想在 Silverlight 中使用一个名为 GetDataWorkflowService.xamlx 的工作流服务。

当我向我的应用程序添加服务引用时,它会给出一条消息“相对 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 标头。此错误也可能是由于在 Web 服务代理中使用内部类型而不使用 InternalsVisibleToAttribute 属性造成的。有关详细信息,请参阅内部异常。

我不明白发生了什么。

【问题讨论】:

  • "请查看内部异常了解更多详情。"什么是内部异常?

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


【解决方案1】:

一些事情:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多