私はまだ WCF に不慣れで、WCF で特定のセクションが必要な場合、なぜ必要なのかについていくつか質問がありました。
1) データベースと通信するために WCF サービスを使用するアプリケーションがあります。ローカル マシンでテスト SSL 証明書をセットアップし、WCF サービスの web.config を次のようにセットアップします。
<wsHttpBinding>
<binding name="MyService" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows" />
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
私は SSL セットアップを持っているので、clientCredentialType を Windows に設定することでトランスポート セキュリティが必要であると読んだので、それは何をしますか? SSL は、やり取りされるデータのセキュリティを管理していませんか? ユーザーを認証するためのカスタム クラスをセットアップしたため、メッセージの一部が表示されます。トランスポートに必要な理由がわかりません。必要がない場合、Windowsにセットアップするとどうなりますか。それは、会社のネットワーク内のすべてのメッセージが問題ないことを意味しますが、そのネットワークの外に何かがある場合ブロックされているサービスと通信しようとしますか?
2) このセクションでは:
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
生産に行くときは、両方とも false に設定する必要がありますか? このように、本番 URL へのサービス参照を設定しようとする他のアプリケーションはブロックされるか、プロキシ クラスを構築できなくなりますか?
3) includeExceptionDetailInFaults、常に false のままにしておく必要がありますか? 現在、WCF サービスでエラーが発生すると、コードで新しい FaultException をスローし、それが Web アプリケーションのメソッドに伝播され、エラー メッセージが記載された電子メールが送信されます。ユーザーは一般的なエラーを受け取るだけです。ページ。
ありがとうございました。