gpt4 book ai didi

wcf - 从 Silverlight 调用 WCF 时发生 CommunicationException

转载 作者:行者123 更新时间:2023-12-04 14:53:07 24 4
gpt4 key购买 nike

这会偷走我的理智。我几乎浏览了我在网上找到的所有内容,但没有向前迈出一步。无论我在做什么,挫败感都不足以描述这个错误消息弹出。

但一个接一个。

我有一台带有 VS 2008 SP1 德语版 Si​​lverlight Tools 3.0 的 64 位 W2008 服务器机器

我想使用 Silverlight 应用程序中的 WCF 服务。而且,和许多人一样,我在调用结束时得到了这个非常令人沮丧的非描述性通信异常。

我创建了一个新的 WCF 服务,命名为 Endpoint,并将其绑定(bind)设置为 basicHttpBinding。我添加了属性

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

到 Service1 类和行
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

到 App.config 中的 system.serviceModel

我将其他所有内容保持原样,并通过 WCF 客户端成功测试了该服务。然后我将它发布到我本地的 IIS7 到 http://localhost/WCFTest

在我的 Silverlight 应用程序中,我使用 http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc 将服务添加到 Servicereference

我将以下代码添加到客户端:
using OSMDeepEarthExample.ServiceReference1;

...
Service1Client s1 = new Service1Client();
s1.GetDataCompleted += new System.EventHandler<GetDataCompletedEventArgs>(s1_GetDataCompleted);
s1.GetDataAsync(20);

void s1_GetDataCompleted(object sender, GetDataCompletedEventArgs e)
{
CountFetchedData.Text = e.Result;
}

我向 webroot (C:\inetpub\wwwroot) 添加了一个 clientaccesspolicy.xml 和一个 crossdomain.xml

客户端访问策略.xml:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

跨域.xml:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="SOAPAction" />
</cross-domain-policy>

我重新启动了 IIS。两次。经常。

我安装了 Web Development Helper 可能是为了获得更多关于什么是错的有意义的信息。但这会使 IE 崩溃。

我没主意了。很快就开始对我的硬件发起攻击。请帮助我的硬件!

正如约翰所说,我确实忘记了它的完整错误消息:

Fehler beim Senden einer Anforderung an den URI "http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc". Ursache ist möglicherweise, dass ohne die entsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeigneten Richtlinie domänenübergreifend auf einen Dienst zugegriffen wurde. Möglicherweise müssen Sie sich an den Besitzer des Diensts wenden, damit eine domänenübergreifende Richtliniendatei veröffentlicht und das Senden von sich auf SOAP beziehenden HTTP-Headern zugelassen wird. Dieser Fehler kann auch durch Verwendung von internen Typen im Webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden. Weitere Details finden Sie in der inneren Ausnahme.



简而言之,它说可能缺少域间规则。

最佳答案

哇,我做到了!

我从 webroot 中删除了 clientaccesspolicy.xml,只留下了 crossdomain.xml。什么奥德赛!谢谢你的收听,它帮助我理清思路。我希望有类似问题的人会发现本文对您有所帮助!

关于wcf - 从 Silverlight 调用 WCF 时发生 CommunicationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1312109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com