プロジェクトに次のコードがあります。
string userId = Membership.GetUser(username).ProviderUserKey.ToString();
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("UPDATE aspnet_Membership SET IsLockedOut = 0, LastLockoutDate = @LastLockedOutDate WHERE UserId = @Userid", conn);
cmd.Parameters.Add("@LastLockedOutDate", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@Userid", SqlDbType.VarChar, 255).Value = userId;
int rowsAffected = 0;
conn.Open();
rowsAffected = cmd.ExecuteNonQuery();
これは私のローカルマシンでうまく機能します。ユーザーは問題なくロック解除されます。しかし、何らかの理由で、リモート サーバー上のデモ サイトにデプロイすると、次のエラーが発生します。
InvalidCastException: Failed to convert parameter value from a Guid to a String
cmd.ExecuteNonQuery 行で失敗しています。パラメータをuniqueidentifierに変更して実際のGUIDを渡そうとしましたが、それもうまくいきませんでした。
これがローカルでは機能するが、リモートサーバーでは機能しない理由を知っている人はいますか? または、コードを変更して機能する方法を知っていますか?