実稼働環境でパスワードをリセットするときに、「iDesignCredentialsManager」MVCアプリケーションで問題が発生しています。スローされるエラーは
System.ServiceModel.CommunicationObjectFaultedException:通信オブジェクトSystem.ServiceModel.Channels.ServiceChannelは、Faulted状態であるため、通信に使用できません。
これは一般的なエラーであり、.netメンバーシップアセンブリの腸の奥深くで実際に何が起こったのかを説明するものではないため、コードの外側を調べ始めました。
実稼働環境はSQLServer2k5であり、開発環境はSQLServer2k8です。コードを本番環境からプルダウンし、CredentialsManager.ConnectionStrings.configファイルの接続文字列を開発データベースを指すように変更しました。アプリケーションはコードベースの開発バージョンと同じように機能します。
パスワードリセット接続を試みている間、SQLデータベースでプロファイラーを実行するためにDBAを使用しました。これは彼のコメントでした
私がprodで起こっているのを最後に目にするのは、exec dbo.aspnet_Membership_GetUserByNameであり、その後は何も起こりません。DEVでは、それを実行した後、dbo.aspnet_Membership_GetPasswordWithFormatを実行し、次にdbo.aspnet_Membership_ResetPasswordを実行し、次にdbo.sapnet_Membership_GetUserByNameを再度実行すると、リセットが成功したように見えます。**
彼らはSSL証明書を使用していますが、DBAは、本番DBで証明書の有効期限が切れていないことを確認しました。
誰か考えがありますか?
CredentialsManager.Membership.configの内容は次のとおりです。現在設定している両方のアプリケーションで、リセットの許可が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>