例外が FaultContractAttribute を使用して宣言されていない場合でも、includeExceptionDetailInFaults を true に設定すると、サービスでは、アプリケーション コードによってスローされる例外を返すことができます。この設定は、サーバーが予期しない例外をスローしている場合のデバッグ時に役立ちます。この属性を使用すると、不明な例外がシリアル化された形式で返されるので、例外をより詳細に調べることができます。
注意 : |
|---|
|
マネージ例外情報をクライアントに戻すことは、セキュリティ リスクになり得ます。これは、例外の詳細が、非承認のクライアントで使用可能な内部サービスの実装についての情報を公開するからです。セキュリティの問題にかかわるため、この操作は制御されたデバッグ シナリオでのみ行うことを強くお勧めします。アプリケーションを配置する場合は、includeExceptionDetailInFaults を false に設定する必要があります。
|
マネージ例外に関連するセキュリティ問題の詳細については、「Specifying and Handling Faults in Contracts and Services」を参照してください。コード例については、「Service Debug Behavior」を参照してください。
httpsHelpPageEnabled と httpsHelpPageUrl を設定して、ヘルプ ページを有効または無効にすることもできます。各サービスは、サービスの WSDL を取得するエンドポイントなど、サービスに関する情報が含まれるヘルプ ページをオプションで公開できます。これを有効にするには、httpHelpPageEnabled プロパティを true に設定します。これにより、サービスのベース アドレスへの GET 要求に対して、ヘルプ ページを返すことができます。このアドレスは、httpHelpPageUrl 属性を設定することで変更できます。また、HTTP の代わりに HTTPS を使用すると、このアドレスをセキュリティで保護できます。
省略可能な httpHelpPageBinding 属性および httpHelpPageBinding 属性を使用すると、サービス ウェブ ページにアクセスするためのバインディングを構成できます。これらの属性が指定されていない場合、サービス ヘルプ ページへのアクセスには、適切な既定のバインディグ (HTTP の場合は HttpTransportBindingElement、HTTPS の場合は HttpsTransportBindingElement) が使用されます。これらの属性は、組み込みの WCF バインディングでは使用できないことに注意してください。System.ServiceModel.Channels.IReplyChannel をサポートする内部バインディング要素を使用したバインディングでのみサポートされます。さらに、バインディングの System.ServiceModel.Channels.MessageVersion プロパティが System.ServiceModel.Channels.MessageVersion.None である必要があります。