1

我有一个要在 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 属性造成的。有关更多详细信息,请参阅内部异常。

我不明白发生了什么。

4

2 回答 2

0

检查您的启动项目以确保您启动的是 Web 项目而不是 Silverlight 项目。有关更多详细信息,请参阅我的博客上的工作流服务故障排除/Silverlight

于 2011-08-26T16:09:41.057 回答
0

一些东西:

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