Я пытаюсь вызвать метод в моем сервисе, как показано ниже, из приложения ASP.NET.
public bool ValidateUser(string username, string password)
{
try
{
// String CurrentLoggedInWindowsUserName = WindowsIdentity.GetCurrent().Name;
// //primary identity of the call
// String CurrentServiceSecurityContextPrimaryIdentityName =
// ServiceSecurityContext.Current.PrimaryIdentity.Name;
//
}
catch (Exception ex)
{
FaultExceptionFactory fct = new FaultExceptionFactory();
throw new FaultException<CustomFaultException>(fct.CreateFaultException(ex));
}
return false;
}
Конфигурация для клиентской части моего сервиса, как показано ниже
<binding name="WSHttpBinding_IMembershipService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
textEncoding="utf-8" useDefaultWebProxy="false" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
Проблема, с которой я продолжаю сталкиваться - это когда я ее называю; Я получаю следующее сообщение об исключении.
Server Error in '/' Application.
The communication object, System.ServiceModel.Channels.ServiceChannel,
cannot be used for communication because it is in the Faulted state.
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.
Exception Details: System.ServiceModel.CommunicationObjectFaultedException:
The communication object, System.ServiceModel.Channels.ServiceChannel,
cannot be used for communication because it is in the Faulted state.
Stack Trace:
[CommunicationObjectFaultedException: The communication object,
System.ServiceModel.Channels.ServiceChannel, cannot be used for
communication because it is in the Faulted state.]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,
IMessage retMsg) +7596735
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,
Int32 type) +275
System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) +0
System.ServiceModel.ClientBase`1.System.ServiceModel.ICommunicationObject.
Close(TimeSpan timeout) +142
System.ServiceModel.ClientBase`1.Close() +38
System.ServiceModel.ClientBase`1.System.IDisposable.Dispose() +4
Controls.Membership.accountLogin.ValidateUserCredentials(String UserName,
String Password) in C:\ Petition.WebClient\Controls\
Membership\accountLogin.ascx.cs:49
Controls.Membership.accountLogin.Login1_Authenticate(Object sender,
AuthenticateEventArgs e) in C:\ WebClient\ Controls\Membership
\accountLogin.ascx.cs:55
Я не совсем уверен, почему я продолжаю получать это. На всякий случай вот как я называю свою услугу с клиента
private bool ValidateUserCredentials(string UserName, string Password)
{
bool boolReturnValue = false;
using(Members.MembershipServiceClient client =
new Controls.Members.MembershipServiceClient())
{
try
{
boolReturnValue = client.ValidateUser(UserName, Password);
}
catch (FaultException<CustomFaultException> ex)
{
throw ex;
}
}
return boolReturnValue;
}
Кто-нибудь знает, что мне делать в этом случае?