Я пытаюсь вызвать метод в моем сервисе, который приведен ниже, из приложения ASP.NET.Устранение неполадок WCF от клиента 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;
}
Кто-нибудь есть какие-либо идеи, что мне нужно делать в этом случае?
Ссылка выше кажется нарушенной. Вот альтернатива: http://web.archive.org/web/20080803051143/www.iserviceoriented.com/blog/post/Indisposable+-+WCF+Gotcha+1.aspx – Kit