トランスポート セキュリティと Basic clientCredentialType で構成された Web サービス クライアントがあります。サービスは HTTPS エンドポイントを使用しており、エラーの診断が困難です。リクエストとレスポンスのメッセージ、および渡された資格情報 (少なくともユーザー名) を保存するアプリケーションにログを追加しようとしていました。
メッセージについては、MessageInspector を使用してカスタム Behavior を追加しました。
資格情報もログに記録するにはどうすればよいですか? これを行うための WCF の拡張ポイントはありますか? 他の提案はありますか?
ありがとう
編集:私が得ているエラーはこれです:
[NotSupportedException: This method is not supported by this class.]
System.Net.BasicClient.Lookup(HttpWebRequest httpWebRequest, ICredentials credentials) +2544984
System.Net.AuthenticationManager.Authenticate(String challenge, WebRequest request, ICredentials credentials) +304
System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest, ICredentials authInfo) +7949046
System.Net.HttpWebRequest.CheckResubmitForAuth() +269
System.Net.HttpWebRequest.CheckResubmit(Exception& e) +126
System.Net.HttpWebRequest.DoSubmitRequestProcessing(Exception& exception) +185
System.Net.HttpWebRequest.ProcessResponse() +75
System.Net.HttpWebRequest.SetResponse(CoreResponseData coreResponseData) +562
[WebException: The request was aborted: The request was canceled.]
System.Net.HttpWebRequest.GetResponse() +7865220
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +99
[CommunicationException: An error (The request was aborted: The request was canceled.) occurred while transmitting data over the HTTP channel.]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +4729827
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +1725
...Application code from here on...
これは、DEV では正しく動作している Web アプリケーションですが、QA ではこのエラーがスローされます。コードは同じで、ユーザーは両方の環境で有効です。
バインディング構成は次のとおりです。
<binding name="CommonBinding" maxReceivedMessageSize="10000000" useDefaultWebProxy="true" openTimeout="00:10:00" sendTimeout="00:10:00">
<security mode="Transport">
<transport clientCredentialType="Basic" proxyCredentialType="Basic"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>