We are having an issue with the 'iDesign Credentials Manager' MVC Application when resetting passwords in our production environment. The error it throws is
System.ServiceModel.CommunicationObjectFaultedException: The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
as this is a general error and non descriptive as to what really happened deep in the bowels of the .net membership assembly I began looking outside the code.
The production environment is SQL Server 2k5 and the Dev environment that is SQL Server 2k8. I pulled the code down from production changed the connection string in the CredentialsManager.ConnectionStrings.config file to point to our dev databases and the application works as it should as does the development version of the code base.
I engaged a DBA to run the profiler on the SQL database while we attempted a password reset connection. This was his comment
the last thing I see happening in prod is exec dbo.aspnet_Membership_GetUserByName, then nothing after that. In DEV, after it executes that one, I see it execute dbo.aspnet_Membership_GetPasswordWithFormat and then dbo.aspnet_Membership_ResetPassword and then it executes dbo.sapnet_Membership_GetUserByName again then that seems to be the end of the successful reset.**
They are using SSL Cert but the DBA verified the Cert was not expired on the production DB.
Anyone have any thoughts?
Here is the contents of the CredentialsManager.Membership.config the Allow reset is true for both applications we currently have set up.
<membership
userIsOnlineTimeWindow="15"
defaultProvider="DTCSQLMembershipProvider">
<providers>
<clear/>
<add
name="DTCSQLMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="AspNetDbConnectionString"
applicationName="/DTCWebService"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
minRequiredPasswordLength="40"
minRequiredNonalphanumericCharacters="10" />
<add
name="QRSQLMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="AspNetDbConnectionString"
applicationName="/QRWebService"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
minRequiredPasswordLength="40"
minRequiredNonalphanumericCharacters="10" />
</providers>
</membership>