我收到安全错误:
内部异常是:{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代码是生成的代码,我不确定解决方案是如何进行的,因此我不必在每次重新生成时对其进行编辑。
答案 0 :(得分:0)
您是否在WCF服务上设置了clientaccesspolicy.xml
和/或crossdomain.xml
?
根据设计,禁止Silverlight进行跨域调用以防止跨站点伪造等安全威胁。
要启用Silverlight控件以访问其他域中的服务,该服务必须明确选择加入以允许跨域访问。通过选择加入,服务声明它可以安全地由Silverlight控件调用它公开的操作,而不会对服务存储的数据造成潜在的破坏性后果。
要允许连接,您必须在要使用的服务的根目录中设置clientaccesspolicy.xml
或crossdomain.xml
文件。
MSDN有更多信息。