我有一个可以作为控制台应用程序和 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 服务访问系统资源有关。我尝试在与控制台应用程序相同的帐户下运行它,但没有运气。有没有人有任何想法?