我在Windows服务器核心容器中的IIS上运行了一个c#Web应用程序。 在dockerfile中,我创建了一个新用户' myUser'没有密码。 我还将凭据添加到Dockerfile中的Azure文件存储中:
USER myUser
RUN powershell "cmdkey /add:mystore.file.core.windows.net /user:AZURE\mystore /pass:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX=="
我使用' myUser'添加新的应用程序池标识,并将该应用程序池用于我的应用程序。 当我启动容器并使用' docker exec'进行连接时,我以新用户身份登录。 我可以使用' ls \ mystore.file.core.windows.net \ dockerstore \'访问路径。 使用' cmdkey / list'
列出凭据但是,我的应用程序在同一个用户投诉下无法到达商店。在Directory.Exists()上报告了System.IO.IOException。
我也在本地盒子上做了这个操作,应用程序运行没有问题。 我也尝试过使用带密码的用户,但无济于事。 该应用程序使用完整的UNC路径到商店。
在Windows服务应用程序上尝试了同样的事情。同样的事情:可以在powershell会话中列出文件,但我的应用程序无法访问它。
我错过了什么吗?
编辑:这是我的所作所为:
NET USER myAzureFilesUser myAzureFilesPasswordXXXXXXXXXXX== /add /y
NET LOCALGROUP Administrators /add myAzureFilesUser
Import-Module WebAdministration
$processModelProperties = @{userName='myAzureFilesUser ';password='myAzureFilesPasswordXXXXXXXXXXX==';identitytype=3}
Set-ItemProperty (Join-Path 'IIS:\AppPools\' 'My AppPool Name') -name processModel -value $processModelProperties
答案 0 :(得分:2)
您需要使用与Azure文件存储帐户相同的用户名和密码创建本地用户帐户,并执行此处所述的其他一些任务。 https://blogs.iis.net/davidso/azurefile