ほとんどの Web アプリケーションには、Deploy.ps1 Powershell スクリプトが含まれています。Octopus Deploy はこれを使用して、本番デプロイ中にアプリを構成しますが、開発者のローカル IIS 設定をセットアップするためにも使用します。Windows 7、Windows 8.1、およびすべての Win2012 運用サーバーで問題なく動作します。
Windows 10 では動作しません。これは、Set-ItemProperty
コマンドレットが効果を発揮しないことが原因のようです。エラーメッセージなどはありません。何もしません。
IIS サイト api.example.com は既に存在し、Powershell を使用して /myapp アプリケーションを作成し、アプリケーションの物理パスを D:\Projects\Demo に変更します。
PS C:\> IIS:
PS IIS:\> cd Sites\api.example.com
PS IIS:\Sites\api.example.com> New-WebApplication myapp -site api.example.com -PhysicalPath C:\inetpub\wwwroot
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
myapp DefaultAppPool http C:\inetpub\wwwroot
PS IIS:\Sites\api.example.com> set-itemproperty myapp -name PhysicalPath -value D:\Projects\Demo
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http C:\inetpub\wwwroot
^ THIS IS WRONG!
Windows 7 でまったく同じ一連のコマンドを実行すると、同じ出力が得られますが、最後の手順で PhysicalPath プロパティが期待どおりに変更されています。
PS IIS:\Sites\api.example.com> get-itemproperty myapp
Name Application pool Protocols Physical Path
---- ---------------- --------- -------------
demo DefaultAppPool http D:\Projects\Demo
何が起こっているのか分かりますか?IIS10 に新しい管理者制限はありますか? 既存の Web アプリケーションなどの設定を変更するために必要な、ある種の特別な昇格された権限はありますか?
更新: アイテムが IIS サイトの場合は正常に動作するようですが、アイテムが Web アプリケーションの場合は失敗します。これはプロバイダーのバグではないかと思います。何か案は?