You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solace会话创建失败求助:连接发送通知时无法打开会话

连接Solace创建会话失败排查求助

尝试连接Solace发送通知时,调用context.CreateSession(sessionProps, null, null)无法打开指向Solace URL的会话,抛出如下异常,恳请协助排查。

异常信息

抛出异常:Failed to create session

堆栈跟踪

at SolaceSystems.Solclient.Utils.Types.Utilities.GuardAgainstNotOk(ReturnCode returnCode, String message, Boolean includeSdkError, ISolLogger logger)
at SolaceSystems.Solclient.Messaging.Native.SessionImpl.InitSession(Session_CreateFuncInfoV2& sessionFuncInfo, IntPtr& opaqueSessionPtr)
at SolaceSystems.Solclient.Messaging.Native.SessionImpl..ctor(ContextImpl parentContext, SessionProperties sessionProps, EventHandler`1 messageEventHandler, EventHandler`1 sessionEventHandler)
at SolaceSystems.Solclient.Messaging.Native.ContextImpl.CreateSession(SessionProperties props, EventHandler`1 messageEventHandler, EventHandler`1 sessionEventHandler)
at Tutorial.TopicPublisher.Run(IContext context, String host) in C:\src\TopicPublisher\TopicPublisher.cs:line 142
at Tutorial.TopicPublisher.Main(String[] args) in C:\src\TopicPublisher\TopicPublisher.cs:line 228
Finished.

使用的代码块

SessionProperties sessionProps = new SessionProperties()
{
        Host = host,
        VPNName = VPNName,
    UserName = UserName,
    Password = Password,
    ReconnectRetries = DefaultReconnectRetries,
    SSLClientCertificate = getCertificate(),
    SSLTrustStoreDir = Convert.ToString(SOLACE_SSL_TRUST_STORE_DIR),
    SSLValidateCertificate = true,
    SSLValidateCertificateDate = true,
    SSLExcludedProtocols = "",
    AuthenticationScheme = AuthenticationSchemes.CLIENT_CERTIFICATE,
}; // Connect to the Solace messaging router 
Console.WriteLine("Connecting as {0}@{1} on {2}...", UserName, VPNName, host);


using (ISession session = context.CreateSession(sessionProps, null, null))
{
    ReturnCode returnCode = session.Connect();
    if (returnCode == ReturnCode.SOLCLIENT_OK)
{
            Console.WriteLine("Session successfully connected.");
        PublishMessage(session);
    }
else
{
        Console.WriteLine("Error connecting, return code: {0}", returnCode);
}
}

排查建议

  • 证书配置检查
    • 验证getCertificate()返回的客户端证书是否有效,格式是否符合要求(如PEM或DER),确保证书文件路径正确且程序有读取权限
    • 确认SSLTrustStoreDir指向的目录存在,且包含Solace服务器的CA证书,目录权限允许程序访问
  • 认证参数冲突排查
    • 已设置AuthenticationScheme = AuthenticationSchemes.CLIENT_CERTIFICATE,部分Solace环境下证书认证无需密码,可尝试移除Password配置项后重试
  • SSL协议配置优化
    • SSLExcludedProtocols设为空字符串可能导致使用不安全协议被服务器拒绝,建议明确指定排除的旧协议,例如:SSLExcludedProtocols = "SSLv3,TLSv1.0,TLSv1.1"
  • 基础连接参数验证
    • 检查Host格式是否为SSL连接要求的tcps://<host>:<port>,确认端口为Solace SSL默认端口55443或服务器配置的对应端口
    • 核实VPNName、UserName在Solace服务器上已正确配置,且该用户拥有指定VPN的访问权限
  • 启用详细日志
    • 通过Solace SDK的ContextProperties配置日志级别为LogLevel.Debug,获取更详细的错误细节,定位具体失败原因

内容的提问来源于stack exchange,提问作者Akilaspl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:05:02