WindowsサーバーのコアコンテナでIIS上で実行されているc#Webアプリケーションがあります。 ドッカーファイルでは、パスワードなしで新しいユーザー 'myUser'を作成します。 私もDockerfileの私Azureのファイルストアに資格情報を追加します。WindowsコンテナがAzureファイルストレージにアクセスできない
USER myUser
RUN powershell "cmdkey /add:mystore.file.core.windows.net /user:AZURE\mystore /pass:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX=="
私は「MYUSER」を使用して、新しいアプリケーションプールIDを追加し、自分のアプリケーションのために、そのアプリケーションプールを使用します。 コンテナを起動し、「docker exec」を使用して接続すると、新しいユーザーとしてログオンしています。 'ls \ mystore.file.core.windows.net \ dockerstore \'を使用してパスにアクセスできます 'cmdkey/list'で認証情報が表示されます。
ただし、同じユーザーの下で実行される私のアプリケーションでは、店舗には届かないという苦情があります。 Directory.Exists()でSystem.IO.IOExceptionが報告されました。
ローカルボックスでもこの実行を行っていますが、アプリケーションは問題なく実行されます。 私もパスワードを持つユーザーを使用しようとしましたが、無駄です。 アプリケーションは、ストアへの完全なUNCパスを使用します。
Windowsサービスアプリケーションで同じことを試しました。同じこと:ファイルをPowerShellセッションにリストすることはできますが、アプリケーションはそのファイルにアクセスできません。
何か不足していますか?
編集:あなたはAzureのファイルストレージアカウントと同じユーザー名とパスワードを使用してローカルユーザーアカウントを作成し、ここで説明するようにいくつかの追加のタスクを実行する必要が
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を使用して格納されます。 –
同じユーザー名とパスワードの両方を設定しても、それ以上のものを必要とせずに動作することは間違いありません。 –