silverlight调用web服务的问题

privatevoidbutton1_Click(objectsender,RoutedEventArgse){Service1SoapClients=newServic... private void button1_Click(object sender, RoutedEventArgs e)
{
Service1SoapClient s = new Service1SoapClient();
s.HelloWorldAsync();
s.HelloWorldCompleted += new EventHandler<HelloWorldCompletedEventArgs>(s_HelloWorldCompleted);
}

void s_HelloWorldCompleted(object sender, HelloWorldCompletedEventArgs e)
{
this.textBox1.Text = e.Result;
}

我是这样调用的,调用后报错

尝试向 URI“http://localhost:37679/Service1.asmx”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。

请问高手怎么解决?谢谢了……
展开
 我来答
HAL9000PLUS
2010-03-13 · TA获得超过1279个赞
知道小有建树答主
回答量:663
采纳率:0%
帮助的人:719万
展开全部
你调用的服务不在silverlight所部署的同一个服务器上,为了安全原因,不允许直接调用。
结决方法是在同一服务器上部署服务与sl终端。或是在webservice服务器的“根”里放两个文件:

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/> // 这里写上sl的url, 或是*.
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

-----------------------
crossdomain.xml

<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" /> // 这里写上sl的url, 或是*.
</cross-domain-policy>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式