我有一个 WCF 服务,它有一个名为GetEmail
. GetEmail
从数据库表中提取电子邮件。要求是向个人用户(此服务的消费者)发送独特的电子邮件内容。这意味着没有两个用户可以处理单个电子邮件内容。但是由于 WCF 服务设计,这被违反了。具体来说,WCFConcurrency
和InstanceContent
模式。抱歉,我现阶段无法更改服务设计。
问题:是否可以在不更改服务设计或数据库表(锁定)的情况下建立对电子邮件内容的同步访问。GetEmail
理想情况下,呼叫必须在我的操作合同上排队。我读过IExtensibleObject<T>
但无法将其与我的案例联系起来。
[ErrorBehavior(typeof(ErrorHandler))]
[ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Multiple, InstanceContextMode=InstanceContextMode.PerCall)]
public class EmailRepository : IEmailRepository
{
public string GetEmail(Guid IdUser)
{
//Logic to retrive one email based on data of receive
}
}