0

在我们的生产环境中重置密码时,我们遇到了“iDesign Credentials Manager”MVC 应用程序的问题。它抛出的错误是

System.ServiceModel.CommunicationObjectFaultedException:通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为它处于故障状态。

由于这是一个普遍的错误,而且对于.net 会员大会内部真正发生的事情没有描述性,我开始在代码之外寻找。

生产环境是 SQL Server 2k5,开发环境是 SQL Server 2k8。我将代码从生产环境中提取出来,更改了 CredentialsManager.ConnectionStrings.config 文件中的连接字符串以指向我们的开发数据库,​​并且应用程序可以像代码库的开发版本一样正常工作。

当我们尝试密码重置连接时,我聘请了一位 DBA 在 SQL 数据库上运行分析器。这是他的评论

我在 prod 中看到的最后一件事是 exec dbo.aspnet_Membership_GetUserByName,然后什么都没有。在 DEV 中,在它执行那个之后,我看到它执行 dbo.aspnet_Membership_GetPasswordWithFormat 然后 dbo.aspnet_Membership_ResetPassword 然后它再次执行 dbo.sapnet_Membership_GetUserByName 然后这似乎是成功重置的结束。**

他们正在使用 SSL 证书,但 DBA 验证了生产数据库上的证书没有过期。

有人有什么想法吗?

这是 CredentialsManager.Membership.config 的内容,对于我们当前设置的两个应用程序,Allow reset 都是 true。

    <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>
4

0 回答 0