我有一個c#web應用程序在Windows服務器核心容器中的IIS上運行。 在dockerfile中,我創建了一個沒有密碼的新用戶'myUser'。 我添加憑據到我的Azure的文件存儲在Dockerfile還有:Windows容器無法訪問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
您的應用程序池在帳戶下以與Azure文件存儲帳戶相同的名稱作爲密碼運行? –
@GSA不,不是相同的帳戶。用戶/密碼憑證使用cmdkey存儲。 –
我敢肯定,如果你設置了兩個相同的用戶名|密碼,它將工作,不需要任何額外的東西 –