次のネットワークセキュリティ設定を検討してください。
Users Internet
|
====Firewall==== Port 80, 443 only
|
Web Server DMZ - ASP.NET MVC + Web API
|
====Firewall==== Port 80, 443 only
|
"App" Server WCF or ASP.NET Web API ??
|
Database Internal network
私は多くのクライアントの施設で上記のネットワーク設定を見てきました。ITインフラストラクチャチームは、DMZのWebサーバーがポート1433を介して内部ネットワークでホストされているSQL Serverへの直接接続を確立することを許可していません。皮肉なことに、web.configがプレーンテキストのDBパスワードを使用してWebサーバー上に横たわっているのを見ました。でOK。
通常、図に示すように、WCFが「App」サーバーでホストされているソリューション(HTTPポートで使用できるため)を見て作業しました。WCFは、WebフロントエンドがDBと対話するための唯一の方法になります。WCFを使用することの「利点」の1つは、ASP.NETMVCフロントエンドから簡単に使用できる強い型のオブジェクトを返すことです。
質問:
現在、ASP.NETCoreは使用できませんのでご注意ください。
これは繰り返し発生する問題であるため、WCFを使用するよりも優れた解決策があるかどうか、コミュニティからぜひお聞かせください。
同じ問題のシステムを作成しました。DBアクセスはアプリサーバーに制限されています。
私たちが採用した方法は、AppServerでホストされているMvcフロントエンドとWebApiバックエンドでした。
通常WCFを乗り越える強い型付けを取得するために、Refitと呼ばれるツールを選択しました:https://github.com/paulcbetts/refit。これにより、事前構成されたURLテンプレートを使用したインターフェースを、通常のDIコンテナーを介して挿入できるオブジェクトに変換できるため、非常にテスト可能になり、定型的なHttpClientコードの多くが削除されます。これは、WebApiバックエンドで非常にうまく機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加