私はテスト中に電子メールのみを送信するなど、開発環境に異なる方法でメールを送信したいと思います。 webconfigファイルにアプリケーションの値を設定したり、メールを送信する前にURLをチェックしたりすることができます。私はこれを行うためのベストプラクティスを知りたいのですが、それが良くないかもしれないことがわからない他のオプションがある場合は、このトピックに関する情報は非常に高く評価されます。.NETの本番環境か開発環境かを判断する最良の方法
答えて
私はPreprocessor Directives (in C#)という名前を使用します。 VBでは、Directivesと呼ばれています。
私はこのようなヘルパーメソッドを持っています。
public static bool IsDebug()
{
#if DEBUG
return true;
#else
return false;
#endif
}
次にどこにでもコードに1がこのメソッドを呼び出すと、実行時に、コードはDebug
(開発)または場合に実行されている場合、それは教えてあげることができますそれはRelease
バージョン(制作)です。
の代わりにあなたのコードを変更することだ、なぜあなたはフィールドに対処するために関係なく、あなたにだけメールに開発メールサーバーを設定していませんか?
これを行うコードを書くよりも良いと思われます。
まあ、唯一の本番だかを判断することができ、何が開発ですので、web.configファイル内のフラグはOKですが、よりエレガントな解決策は、名前を付けるためにCastle WindsorをSpring.Net ALA Dependency Injection(DI)のようなパターン、StructureMapを伴う、となりいくつか。
DIの背後にあるキーコンセプトは、実行時にインスタンス化するクラスに関する情報を動的に提供することによって、実装のバリエーションを切り離し/分離することです。この場合、たとえば、あなたのコードはすべて、「メール」インターフェース(prod環境かdev環境かはわかりません)を扱うように記述され、DIフレームワークを構成して、aのプロダクション版または開発版をインスタンス化しますメール実装クラス。これは、あなたが設定パラメータ値を公開したり増殖したりしていない点で、少し洗練されています。
確かに学習曲線があるので、プロジェクトのこの段階では実行可能ではないかもしれませんが、留意すべきことは間違いありません。
IISのweb config inheritanceを使用すると、アプリケーションが展開されているそれぞれの環境からグローバルコンテキスト設定を「継承」できるようになります。 PRODであなたの.NETアプリケーションがインストールされている場所の親ディレクトリで
(例えば/inetpub/wwwroot.web.config
、あるいはルートweb.configファイル(\Windows\Microsoft.NET\Framework\ver\web.config
)、ご使用の環境固有の設定を追加し、例えば
<appSettings>
<add key="sendMailTo" value="" />
<add key="environmentName" value="PROD" />
</appSettings>
はDEV
<appSettings>
<add key="sendMailTo" value="[email protected]" />
<add key="environmentName" value="DEV" />
</appSettings>
ではこれらの環境のコンテキストの設定はアプリを再デプロイ毎回展開されません。また、他のすべてのアプリは、あなたがyに展開私たちのサーバーはこれらの設定を継承することもできます。
サイト全体のWeb設定値を確認する際にパフォーマンスコストはありますか? – user1572948
@ user1572948 AppSettingsは一度読み込まれキャッシュされますが、それ以上のパフォーマンスの向上は可能です。http://stackoverflow.com/questions/1304897/asp-net-web-config-appsettings-performance – StuartLC
情報をお寄せいただきありがとうございましたキャッシュされていれば、私にとっては問題にならないはずです – user1572948
- 1. 角型開発環境と本番環境
- 2. Rails環境は、開発環境の中でさえ、本番環境に固執しているようです。
- 3. 開発環境と本番環境向けに異なるMETA-INF/context.xmlファイルを使用する方法
- 4. 開発環境と本番環境の両方でAJAXリクエストを自動的にプロキシする
- 5. ContextBrokerを本番環境に展開する方法は?
- 6. Railsの開発環境と本番環境の重要な違いは何ですか?
- 7. Angular2は、本番環境で
- 8. 開発環境用のhttps環境/ SSL証明書をシミュレートする方法は?
- 9. オンラインレール開発環境
- 10. ハイブリッド開発環境
- 11. 開発環境(ワードプレス)
- 12. phonegap開発環境
- 13. テンソルフロー開発環境の設定方法
- 14. シームレスにプロダクションに移行するApache環境の開発環境
- 15. Apache Apex最小限の開発環境
- 16. Rails 5 ActionCableが開発環境と本番環境の間でメッセージを渡しています
- 17. 開発環境でのキャッシュ?
- 18. Facebookの開発環境
- 19. Docker開発環境のリッチエディタ
- 20. 開発環境のSSO
- 21. ドッカーベースの開発環境
- 22. 本番環境では、Python仮想環境は必要ですか?
- 23. クロムエクステンションを知るには開発環境か生産環境ですか?
- 24. Aspネット開発環境へのホスト環境の変更
- 25. 私の開発環境はユーザーの環境を反映していますか?
- 26. 本番環境のソフトウェアのハードウェア構成
- 27. ngnixの本番環境用にnodejsを設定する方法
- 28. C++用のオープンソース開発環境:何が良いですか?
- 29. nodeJS開発環境とプロダクション環境設定ファイルのロード
- 30. Docker:開発環境と運用環境のベストプラクティス
ありがとうございます、私はIISでsmtpを設定できました。メールを送信するのではなく、フォルダに保存するように設定することもできます。 – user1572948