Exchangewebservices 如何避免Exchange命名属性耗尽?

Exchangewebservices 如何避免Exchange命名属性耗尽?,exchangewebservices,Exchangewebservices,根据下面的Microsoft博客文章,我开始使用命名属性在使用EWS时使用密钥、值对标记发送的电子邮件。此方法用于查找刚刚在服务器上发送的电子邮件,以便获得后期处理(如移动电子邮件)所需的邮件标识符 这篇文章没有说的是,您可以在数据库中创建的命名属性(属性名和guid对)的数量有严格限制 我使用属性来解决博客文章所解决的问题。为什么他们不提这样的限制?我觉得我错过了一些本该显而易见的事情 问题: 有没有一种方法可以使用这些属性,使它们不会耗尽精力?博客文章没有描述的一些技巧 有没有其他

根据下面的Microsoft博客文章,我开始使用命名属性在使用EWS时使用密钥、值对标记发送的电子邮件。此方法用于查找刚刚在服务器上发送的电子邮件,以便获得后期处理(如移动电子邮件)所需的邮件标识符

这篇文章没有说的是,您可以在数据库中创建的命名属性(属性名和guid对)的数量有严格限制

我使用属性来解决博客文章所解决的问题。为什么他们不提这样的限制?我觉得我错过了一些本该显而易见的事情

问题:

  • 有没有一种方法可以使用这些属性,使它们不会耗尽精力?博客文章没有描述的一些技巧

  • 有没有其他方法可以解决同样的问题


  • 避免命名属性耗尽的方法是不要每次都使用新属性。例如,对于您的应用程序,您只需要一个name属性,因为您的差异点应该是属性值(例如,如果您稍后搜索这些属性,则无论如何都不会对其进行索引,因此为每个消息使用单独的属性不会给您带来任何更好的性能)。即使您需要有不同的键值对,您仍然可以将其放入属性值中(例如,使用JSON字符串,这是Microsoft为邮件应用程序所做的,这样您就可以拥有一个扩展属性和多个键值对,尽管搜索性能会因此受到影响,因为子字符串查询非常昂贵).

    下面是我设置属性的方法。我的财产总是同名。为每个邮件重新生成值(guid)。Guid=Guid.NewGuid();ExtendedPropertyDefinition propDef=新的ExtendedPropertyDefinition(guid,“myId”,MapPropertyType.String);message.SetExtendedProperty(propDef,“myValue”);这就是你的建议,对吗?我的理解是,每个帐户只能获得32767个名称:值对,而不是32767个唯一的名称。不要每次都使用新的NewGuid,因为您需要创建一个新属性。为应用程序定义自己的GUID,并每次使用该GUID。因此,示例中的guid和myId应该是静态变量,只需更改值即可。