2016-12-16 86 views
3

运行由systemd使用www-data用户管理的Kestrel服务器。当试图发送使用MailKit使用TLS的电子邮件使我得到了以下错误消息:Ubuntu上的MailKit dotnet核心16.04

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

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

+0

面临的同样的问题。在根下而不是WWW-数据 –

+0

在这种情况下,Root似乎很危险。 – v7d

回答

2

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

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

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

,并把权限给予www数据组
(如果这是运行服务组)

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