2017-06-26 10 views
1

私のウェブの終わりに実行されるバッチスクリプトステップがあります。スクリプトはaspnet_regiis.exeを使ってweb.configの接続文字列を暗号化します。ログにはうまくいったようですが、実際にはconnectionStringを暗号化しません私はバッチをリモートマシン上でローカルに実行します。リリース定義を実行する方法はありますか、ユーザーは毎回ローカルでバッチを実行する必要がありますか?TFS 2017 - aspnet_regiis.exeリリース定義では?

ここにコードがあります。

start C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2" 
echo Encryption Successfull! 
pause 
+0

エラーが表示されたり、プロンプト情報が表示されましたか? –

答えて

1

まず、ビルドサービスアカウントRDPをリモートマシンに使用して、バッチスクリプトを実行することをお勧めします。アカウントのパーミッションが不足していないか再度確認してください。

ログは正常に処理されたように見えますが、実際にはconnectionStringは暗号化されません。また、それを実行するには、以下のいくつかのテストを実行しよう:

  • あなたは、元の暗号化された設定ファイルに サーバーにデプロイされた変換web.configファイルを比較することがありますか? サーバーの両方のファイルでテストしてください。
  • サーバー上の設定ファイルの暗号化を解除し、正しい接続文字列が返されるかどうかを確認してください。
+0

解決策を見つけました。ネットワークサービスで実行されている権利エラーです。NetworkServicesは権利を持っていません。私は管理者の下で実行するようにエージェントを変更し、それは理想的ではなく機能しますが動作します。 NetworkServicesの管理者権限を設定するにはどうすればよいですか? –

+0

NetworkServices権限を管理者に変更した場合、私にはうまくいかないWebページが展開されます。新しいWebサイトが展開されるたびにNetworkServices権限がデフォルトに戻ります。 –

+0

@WojtekTそうなら、エージェントをサービスモードとして実行しなければなりませんでしたか?サービスの代わりにインタラクティブモードとして構成された1つのビルドエージェントでリリースを実行してみてください。これによりアカウントに十分な権限が与えられ、そのトリックを行う可能性があります。 https://www.visualstudio.com/en-us/docs/build/concepts/agents/agents#account –

関連する問題