这会偷走我的理智。我已经浏览了几乎我在网上找到的所有内容,并没有向前迈进一步。无论我在做什么,沮丧都不足以描述这种错误消息。
但是一个接一个。
我有一台64位W2008服务器机器,带有VS 2008 SP1德语版本,Silverlight Tools 3.0
我想从Silverlight应用程序中使用WCF服务。并且,和许多人一样,我在调用结束时得到了非常令人沮丧的非描述性通信异常。
我创建了一个名为Endpoint的新WCF服务,并将其绑定设置为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中添加了clientaccesspolicy.xml和crossdomain.xml(C:\ inetpub \ wwwroot)
clientaccesspolicy.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>
的crossdomain.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,可能会获得有关WHAT错误的更有意义的信息。但是这会让IE崩溃。
我没有想法。很快就开始对我的硬件采取激进措施了。请帮我的硬件!
正如John所说,我确实忘记了完整的Errormessage:
Fehler beim Senden einer Anforderung an den URI“http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc”。 Ursacheistmöglicherweise,dass ohne dieentsprechendedomänenübergreifendeRichtlinieoder mit einernichtfürFabs-Dienste geeignetenRichtliniedomänenübergreifendaufeinen Dienst zugegriffen wurde。 MöglicherweisemüssenSiesich an den Besitzer des Diensts wenden,damiteinedomänenübergreifendeRichtliniendateiveröffentlichtunddas 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详细信息查阅了In inrenren Ausnahme。
简而言之,它表示可能缺少一个域间规则。
答案 0 :(得分:7)
哇,我已经完成了!
我从webroot中删除了clientaccesspolicy.xml,只留下了crossdomain.xml。太棒了!谢谢你的倾听,这有助于我清醒。我希望有类似问题的人会发现文本有点帮助!