Silverlight,EF,EntityCollection类型的成员集合 - 不确定如何通过WCF传递

时间:2011-12-13 09:10:50

标签: silverlight wcf entity-framework

我收到安全错误:

  

内部异常是:{System.Security.SecurityException --->   System.Security.SecurityException:安全错误。

UPDATE 我的问题是因为Categories类型(通过WCF传递)在Products集合中。类别和其他模型类型是使用实体框架生成的代码。 Categories中的Products成员的类型为EntityCollection。

类别中的产品集合:(生成代码)

    [XmlIgnoreAttribute()]
    [SoapIgnoreAttribute()]
    [DataMemberAttribute()]
    [EdmRelationshipNavigationPropertyAttribute("inventory_db_bigModel", "Products_fk", "Products")]
    public EntityCollection<Products> Products

问题是如何在客户端ServiceReference中声明Products集合? 我尝试使用ObservableCollection和Generic List,但它给了我相同的安全错误。 客户端ServiceReference代码是生成的代码,我不确定解决方案是如何进行的,因此我不必在每次重新生成时对其进行编辑。

1 个答案:

答案 0 :(得分:0)

您是否在WCF服务上设置了clientaccesspolicy.xml和/或crossdomain.xml

根据设计,禁止Silverlight进行跨域调用以防止跨站点伪造等安全威胁。

  

要启用Silverlight控件以访问其他域中的服务,该服务必须明确选择加入以允许跨域访问。通过选择加入,服务声明它可以安全地由Silverlight控件调用它公开的操作,而不会对服务存储的数据造成潜在的破坏性后果。

要允许连接,您必须在要使用的服务的根目录中设置clientaccesspolicy.xmlcrossdomain.xml文件。

MSDN有更多信息。