2011-02-05 68 views
0

我有有一个WCF服务调用的一些Silverlight应用程序。 silverlight和WCF都位于本地主机上。当我运行silverlight应用程序但它在通信异常中调用WCF时失败。如果你知道这可能是因为WCF和silverlight没有在同一个端口上运行,我必须添加clientaccesspolicy.xml文件。 但我不明白什么是“域根”我必须找到那里的XML。 可以请你告诉我,我必须找到XML存在(在本地主机上)C#的Silverlight - WCF调用

感谢路径!

回答

0

我只是这个昨天与IIS做托管WCF服务。我把XML文件放在c:\ inetpub \ wwwroot(我想,它在我的机器上工作)。

如果没有IIS托管,这可能是不同的。当我第一次开发我的服务时,我做了一个自我托管的exe。在那种情况下,我没有使用XML文件。相反,我在自承载EXE项目中实施了另一个“服务”。该服务自动创建XML文件。我没有这个细节。如果您当时还没有解决您的问题,我可以在星期一发布更多信息。

在此期间,看到这个链接:

Where to place ClientAccessPolicy.xml for Local WCF Service?

或者这一个:

How can I get my WCF service's client access policy operation to be accessible from the root?

+0

您可以请发布有关自托管的更多信息吗?一个单独的exe如何可以在silverlight项目中? – gln 2011-02-07 06:47:08

0

您silverlght托管项目添加clientaccesspolicy.xml在Visual Studio中,例如, MyProject.Web。简而言之,将其放置在应用程序的Web.config附近。

1

“域名根”是你在托管Silverlight应用程序的HTTP域的根地址。这有点违反直觉,但请记住策略文件正在处理跨域脚本问题。

因此,如果任何这些:

http://www.yourdomain.com 

http://www.yourdomain.com/app 

http://www.yourdomain.com/app1/PageSilverlightNeedsToHit.aspx 

http://www.yourdomain.com/app1/Service1.svc 

http://www.yourdomain.com/apps/yourapp/folders/services/versions/otherlongnames/ 

你必须在

http://www.yourdomain.com/clientaccesspolicy.xml 

有一个有效的clientaccesspolicy.xml一个简单的测试是打的URL(HTTP:// WWW。 yourdomain.com/clientaccesspolicy.xml),并确保您获取访问XML。这将模仿Silverlight的行为。

如果这不适用于您的主机设置,请回复。这个请求还有其他选项(自定义iis处理程序等),但根据您的需求,它们可能会过度杀伤。