【问题标题】:.Net Core - Mailkit SSLHandshake error after publish to Ubuntu platform.Net Core - 发布到 Ubuntu 平台后的 Mailkit SSLHandshake 错误
【发布时间】:2021-08-20 17:04:53
【问题描述】:

我为 linux 发布了我的 ASP .net 核心应用程序。我在 Debug 中遇到了框架 MailKit v12 cuz 的问题,所有工作都没有问题,我连接到使用 imap 等获取数据的邮件服务器,但是当我一直发布应用程序时,我遇到了 SSL hanshake 错误。

我认为这可能是一些服务器端配置问题,但它不会。我在 VSCode 中编写了快速控制台应用程序并在 linux 上调试运行,它可以工作,但我从应用程序发布的版本不想......

Linux:Ubutnu 18.04 LTS .net 版本:net5 发布服务配置:

[Unit]
Description=My desc

[Service]
WorkingDirectory=my/path
ExecStart=/usr/bin/dotnet my/path/App.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

我的邮箱代码:

例外照片:

我不确定这是否重要(我认为不重要),但要按计划运行服务,我使用 Hangfire 框架。我认为 apache config 它也不是很重要,但我在 *:80 上使用 Http 来访问,而不是 ssl。不过,如果在 ubuntu 上以相同的配置运行,应用程序不应该也能运行?

请告诉我我应该阅读更多内容,或者您​​是否遇到了同样的问题,因为 MailKit 的 GitHub 的任何建议对我没有帮助。

【问题讨论】:

  • 错误消息讨论了 6 种不同的可能错误原因。如果这 6 种可能的原因中的任何一种,您检查了什么?
  • 顺便说一句,您在错误消息的图像中发布了一个链接,其中包含可能有用的错误信息。考虑编辑问题并将异常添加为文本,以便您和其他人可以查看该非常有帮助的 github 链接。
  • 您要使用哪个版本的 TLS?您有一个旧版本的 Ubuntu,它可能不支持 TLS 1.3。请参阅:wiki.ubuntu.com/Releases?force_isolation=true。你用的是什么版本的网络?您应该使用 Net 4.7.2 或更高版本并以 Core 5.0 为目标。然后确保您使用的是 TLS 操作系统而不是 Net。
  • @Cleptus 感谢您的回复,我将编辑帖子。关于这 6 个可能性,我发现它并不那么重要(也许我不应该),因为我不明白我从 Windows(对于 linux x64 平台)发布的应用程序之间的区别,在这些应用程序中,在 Linux 中编写的功能和版本不起作用,并且为运行的 linux 发布。我不相信重要的是服务器是否正在使用自签名证书,如果它正在使用在 linux 上编写的版本.. 对我来说很困惑。
  • @jdweng 感谢您的回复。确实,它不是最新的 Ubuntu 版本和 TLS,因为我使用的是 1.0 或 1.1,但它可以在 Windows 上运行。关于.net:我认为检查它是个好主意,我会的。目标框架是 .net 5.0 在 ubuntu 上安装的是 3.1 和 5.0 支持:docs.microsoft.com/pl-pl/dotnet/core/install/linux-ubuntu

标签: c# linux asp.net-core ubuntu-18.04 mailkit


【解决方案1】:

我需要按照@jdweng 的建议降级到 .net core 3.1 进行检查,这可以解决问题。谢谢大家的帮助!! :)

【讨论】:

    猜你喜欢
    • 2021-07-21
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2020-12-29
    • 2017-08-05
    • 2020-01-26
    • 2017-05-15
    • 2017-02-26
    相关资源
    最近更新 更多