具有共享成员的每会话服务的wcf实例化行为

时间:2012-12-14 20:50:13

标签: .net wcf iis instance

这是我的情景: 我在IIS中托管了一个wcf服务。 wcf服务由两个主要类组成:MyWcf和MyClass。 MyWcf由所有服务端点组成:

<ServiceContract(SessionMode:=SessionMode.Allowed)> Public Interface IMyWcf
    <OperationContract()> Function GetListing As DataTable
End Interface
<ServiceBehavior(InstanceContextMode:=InstanceContextMode.PerSession, ConcurrencyMode:=ConcurrencyMode.Multiple)> Public Class MyWcf
    Implements IMyWcf
    Public Function GetListing As DataTable Implements IMyWcf.GetListing
        Return MyClass.GetSomeDataTable
    End Function
End Class

MyClass包含所有共享成员

Friend Class MyClass
    Friend Shared Function GetSomeDataTable As DataTable
        'some code
    End Function
End Class

我想确定的是:使用此设置,如果两个客户端同时调用GetListing函数,它们都使用GetSomeDataTable函数的相同实例(因为函数是共享的)或者同时执行这两个操作客户端最终获得GetSomeDataTable函数的不同/唯一实例(以及MyClass中的所有其他共享成员)

提前致谢

1 个答案:

答案 0 :(得分:0)

Techniques For Developing WCF Apps

Windows Communication Foundation可以维护私人会话 客户端和特定服务实例之间的关系。当客户端 为配置为会话感知的服务创建新代理 客户端获取一个独立于的新专用服务实例 所有其他同一服务的实例。