2017-05-30 19 views
0

私はweb.configファイルに接続文字列、 アプリ設定などのすべての設定があるアプリケーションを持っています。生産環境では、私はいくつかの設定を変更します。私はアプリケーションを再起動する必要があります。私はどこかで、外部設定ファイルを追加してweb.configのリファレンスを追加すると、アプリケーションを再起動する必要はありません。ここに私のweb.configファイルである:ここではAsp.net MVCで外部設定ファイルを設定するには?

<appSettings configSource="appSettingConfig.xml" /> 

私の外部設定ファイルは次のとおりです。外部の設定ファイルが正常に動作しているが、問題は、私は外部ファイルに変更した場合、私は持っているのと同じまま

<appSettings> 
    <add key="IsShowReportEnabled" value ="True"/> 
    <add key="SendReportToPrinter" value ="False"/> 
    </appSettings> 

アプリケーションを再起動します。 それから私はグーグルで、セクションを追加して外部ファイルの再起動を設定するかどうかを確認しました。ここでは、web.configファイルである:

<section name='rewrite' type='???' restartOnExternalChanges='false' /> 

しかし、これも助けにはなりませんでした。誰かが私が間違っていることを教えてもらえますか?

+0

https://msdn.microsoft.com/en-us/library/ms228245%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396を読んでいますか?特に:restartOnExternalChanges - ASP.NETアプリケーションには適用されません。 – Webbanditten

+0

asp.netアプリケーションのrestartOnExternalChangesは適用されません。 – Umer

+0

他の方法はありますか? – Umer

答えて

0

私が間違っていることを教えてもらえますか?

Web.configの設定は、アプリケーションの起動時に読み込まれるアプリケーション全体の設定を対象としています。通常、これらの設定は手動または展開プロセスによって変更されるため、アプリケーションが変更されたときにアプリケーションが再起動されるという許容可能な副作用があります。

ランタイム設定は、Web.configファイルに格納されていません。それらは通常、テキストファイルなどの別の永続的な場所に保存されるか、より一般的にはデータベースに格納されます。

設定名(特にSendReportToPrinter)は、アプリケーション固有の設定であり、アプリケーション全体の設定ではないように聞こえます。私はこれらがデータベース内のユーザー固有のテーブルに格納されることを期待しています。これはおそらくすべてのユーザーごとに異なる必要があるからです。

+0

私はあなたに同意しましたクライアントの要求には私はこれを行う必要があります。アプリケーションの開始なしで変更する方法はありますか? – Umer

+0

いいえ。設定がアプリ内にキャッシュされているため、web.configを変更すると常にアプリが再起動します。しかし、私はあなたの質問を読んで、あなたはマルチテナントアプリを構築しているように思えます。 [この回答](https://stackoverflow.com/a/32661858)と[ASP.NET MVCでマルチテナントアプリケーションを設計する方法](https://www.appseconnect.com/how- to-design-a-multi-tenant-application-asp-net-mvc /)を使用して、それを行う方法をいくつか紹介します。 – NightOwl888

関連する問題