コンソール アプリと Windows サービスとして実行できる WCF サービスがあります。最近、次のセキュリティ設定でコンソール アプリを W2K3 サーバーにコピーしました。
<wsHttpBinding>
<binding name="ServiceBinding_Security" transactionFlow="true" >
<security mode="TransportWithMessageCredential" >
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="Common.CustomUserNameValidator, Common" />
</serviceCredentials>
セキュリティは問題なく正常に動作します。私はまったく同じコードを持っていますが、Windows サービスで実行していて、クライアントからいずれかのメソッドを呼び出そうとすると、次のエラーが発生します。
System.ServiceModel.Security.MessageSecurityException was unhandled
Message="An unsecured or incorrectly secured fault was received from
the other party. See the inner FaultException for the fault code and detail."
Source="mscorlib"
StackTrace:
Server stack trace:
at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)
......
(lots of stacktrace info - not very useful)
InnerException: System.ServiceModel.FaultException
Message="An error occurred when verifying security for the message."
例外は何も教えてくれません。Windows サービスからのシステム リソースへのアクセスと関係があると思います。コンソール アプリと同じアカウントで実行しようとしましたが、うまくいきません。誰にもアイデアはありますか?