我想从ASP.NET应用程序中调用我的服务中的方法,如下所示。ASP.NET客户端WCF故障排除 - 帮助!
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 2010-09-27 15:11:10