【发布时间】:2018-09-02 17:01:19
【问题描述】:
我有一个托管简单 Web API 的 Windows Docker 容器 (microsoft/aspnet)。 Web API 接受来自表单的文件,将它们保存在临时文件夹中,进行一些处理,然后返回结果。
这在本地部署时工作正常,但在我的 Docker 容器中完成时,我的临时文件夹 (App_Data) 出现文件权限错误。
有没有办法向 IIS 用户授予正在运行的代码作为对该文件的访问权限,或者向任何用户打开文件夹以进行读/写访问?
当前的 Docker 文件如下:
FROM microsoft/aspnet
COPY ./Deploy/ /inetpub/wwwroot
RUN mkdir /inetpub/wwwroot/App_Data
错误消息 sn-p 我从 docker 映像中运行 API:
"InnerException":{"Message":"An error has occurred.","ExceptionMessage":"Access to the path 'C:\\inetpub\\wwwroot\\App_Data\\BodyPart_481b6424-f9a5-4608-894d-406145a48445' is denied.","ExceptionType":"System.UnauthorizedAccessException"
在 aspnet-docker github 上似乎存在一个关于同一问题的错误。 [link]
同时,启动容器后运行cacls App_Data /G IIS_IUSRS:F 似乎可以暂时解决问题。
【问题讨论】:
-
在
From之后添加User Administrator并从RUN 语句中删除-Credential -
@GregorySuvalian 另外,不确定我应该在哪里添加
User Administrator..FROM行只支持图像和标签,两者都没有空格,我找不到图像/ 用那个名字标记 -
我的意思是换行
User Administrator。见这里social.msdn.microsoft.com/Forums/en-US/… -
使用 PowerShell 或
cacls授予 IIS_IUSRS 对App_Data文件夹的写入权限Dockerfile。如果您使用匿名身份验证,还要授予匿名帐户相同的权限。 -
@GregorySuvalian 按照建议添加
USER Administrator行会出现以下错误:error during CreateProcess: failure in a Windows system call: The user name or password is incorrect.
标签: asp.net docker iis docker-for-windows