如果用户从单独的项目输入无效的数据结构,则 WCF 服务失败



我在 1 个项目中有一个 wcf 服务,还有一个对象模型,该对象模型在另一个项目中保存我的所有对象。我在服务项目中添加了对对象模型的引用,并且能够毫无保留地使用服务中的对象。

当我发布服务并且其他用户使用它时。他们能够输入无效的数据和架构,并且服务不会失败。

我需要将服务连接到对象模型。如果用户不遵守对象的架构,则服务应自动失败。

不确定我是否必须在 web.config 中设置配置?

我不明白的是,如果我将对象的属性设置为 required。如果用户未将此属性添加到要传递给服务的对象,为什么服务不自动停止?

[DataMember(IsRequired = true)]
        public string VendorName { get; set; }

WCF 自动化方法

若要根据其 WSDL 协定自动执行 WCF 验证,可以使用此 MSDN 博客中共享的WsdlExporter

WCF 原始方法

  1. 可以使用 WCF 架构验证行为扩展。自定义BehaviorExtension将允许您对定义的架构强制执行数据验证。

  2. 还可以使用 WCF 参数验证行为扩展来强制实施参数约束。

    请参阅 MSDN 的 WCF 输入/数据验证常见问题解答。

WCF 验证评论

另请查看这篇很棒的 SO 文章,了解为什么不执行 WCF 输入/数据验证。

使用 WCF 的 XML 消息传递的四个原则还提供了有关架构验证的有趣视角。

最新更新