0

我在 Windows Server 核心容器中的 IIS 上运行 ac# 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
4

1 回答 1

2

您需要使用与 Azure 文件存储帐户相同的用户名和密码创建本地用户帐户,并按照此处所述执行一些其他任务。https://blogs.iis.net/davidso/azurefile

于 2017-06-12T19:55:38.540 回答