1

WsHttpBinding、クライアントとサーバーの証明書、およびクレーム ベースの承認によるトランスポート セキュリティを備えたセキュリティで保護された WCF サービスがあります。

50% の確率ですべてが正常に機能します。安全なエンドポイントにリクエストすると、正しいレスポンスが得られます。しかし、最初のリクエストの直後に同じリクエストを再度送信すると、次のレスポンスが得られます。

The HTTP request was forbidden with client authentication scheme 'Anonymous'.

その後、再度リクエストを送信すると、通常の動作になります。したがって、奇妙なリクエストは機能しますが、機能しません。

しかし、問題をさらに調査した後。前回のリクエストから 1:40 分以上の間隔がある場合、エラー レスポンスが得られないことに気付きました。

デバッガーとログから確認できること。クライアントは資格情報をサービスに送信します。Authentication 応答がある場合は、System.ServiceModel を入力しません。IIS トレース ログでは、適切な要求でこれを取得します。

Authentication: SSL/PCT 
User from token: Domain\CertifacteUserName 

そしてこれは悪い要求で:

Authentication: NOT_AVAILABLE 
User from token: 

IIS トレース ログでも。2 番目のリクエストを送信すると、両方のリクエストで ConnId と RawConnId が同じであることがわかります。また、複数のリクエストを成功させると (リクエスト間に時間を空けることで)、リクエストごとに異なります。

送信した資格情報が存在する場合、IIS がその資格情報を取得していないように思えます。これはキャッシングのせいでしょうか?または、他の何か?誰かが解決策を持っていますか。

4

0 に答える 0