将我的代码带到 Mono 3.2.8 后,我惊讶地发现我的服务的行为总是像使用InstanceContextMode.Single
. 在 Mono 3.12.1 上也是如此。更清楚地说,我的服务没有标记任何InstanceContextMode
属性并使用BasicHttpBinding
.
我从微软世界知道默认值InstanceContextMode
应该是PerSession
,但当然,当BasicHttpBinding
使用时,值将是PerCall
。这篇文章很好地解释了,但同样,在微软的世界里。
对于 Mono,我尝试使用谷歌搜索,但无济于事。这个链接是我能找到的唯一东西,它说只有InstanceContextMode.Single
实现了,但是这个文档已经过时了,找不到关于此事的任何更新。
我注意到 Mono 3.12.1,在我明确设置之后InstanceContextMode.PerCall
,我最终可以获得想要的行为。
谁能解释InstanceContextMode
Mono 的默认值和实际行为?很高兴能弄清一些,因为我将不得不维护 Windows 和 Linux 的代码。