Ubuntu 16.04上的MailKit dotnet核心

时间:2016-12-16 00:26:25

标签: ubuntu-16.04 mailkit .net-core

使用www-data user运行由systemd管理的Kestrel服务器。尝试使用启用了TLS的MailKit发送电子邮件时,我收到以下错误消息:

System.UnauthorizedAccessException: Access to the path '/var/www/.dotnet/corefx/cryptography/crls' is denied. ---> System.IO.IOException: Permission denied

一种解决方案可能是为www-data设置主目录,但这似乎是反直觉的。

1 个答案:

答案 0 :(得分:1)

调用堆栈指示代码(MailKit或其中一个依赖项)正在尝试构建和访问证书缓存。
您可以手动创建目录并授予必要的权限。
不要修改/ var top目录,因为那很疯狂。

首先,您需要递归创建目录:

mkdir -p /var/www/.dotnet/corefx/cryptography/crls

并授予www-data组的权利 (如果这是运行您服务的组)

sudo chgrp www-data /var/www/.dotnet/corefx/cryptography/crls