gpt4 book ai didi

.net - Mono WCF InstanceContextMode 不工作

转载 作者:太空狗 更新时间:2023-10-29 11:16:35 33 4
gpt4 key购买 nike

我有一个看起来像这样的服务:

[ServiceContract(SessionMode = SessionMode.Required)]
public interface ILabListener
{
[OperationContract]
byte[] GetChallenge();
...

...

[ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerSession)]
class LabListener : ILabListener
{
private byte[] challenge;

public LabListener()
{
[challenge is initialized to random data from RNG]

File.AppendAllText(Program.LogPath, String.Format("{1} - Starting LabListener session: {2}, challenge: {3}{0}",
Environment.NewLine, DateTime.Now, OperationContext.Current.SessionId, Convert.ToBase64String(auth.Challenge.Take(16).ToArray())));
}

public byte[] GetChallenge()
{
return challenge;
}
...

...

var binding = new NetTcpBinding(SecurityMode.None);                     
host = new ServiceHost(typeof(LabListener), new Uri(String.Format("net.tcp://{0}:800/LabListener", Environment.MachineName)));
host.AddServiceEndpoint(typeof(ILabListener), binding, "");

...

LabListenerClient client = new LabListenerClient();
Console.WriteLine(Convert.ToBase64String(client.GetChallenge());
Console.WriteLine(Convert.ToBase64String(client.GetChallenge());

在 Windows 上的 MS .net 中托管此服务时,每个 GetChallenge 的输出都是相同的,LabListener 的构造函数仅被调用一次。

如果我在 OpenSuSE 11.3 下的 mono 2.6.7 中托管它,则会为每次调用 GetChallenge 创建一个新的 LabListener,并返回两个不同的值。

这是 Linux 服务器上的日志输出:

8/26/2010 8:07:57 PM - Starting LabListener session: urn:uuid:5e41d193-c723-4839-abc0-93103dbd63f1, challenge: hDPwoofYUrEjAJ1Q8cWDYw==

8/26/2010 8:07:57 PM - Starting LabListener session: urn:uuid:5e41d193-c723-4839-abc0-93103dbd63f1, challenge: 6/3M4EhiKrAMM2j47MCIpQ==

如何纠正单声道行为?

最佳答案

我建议您构建 SVN 主干(或现在 - 最新的 GIT)并重试。

如果不起作用,请写信给 mono/mono-devel邮件列表并查看答案。

可能是 Mono 错误,维护者会要求您填写测试或错误

关于.net - Mono WCF InstanceContextMode 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580712/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com