我的项目中有这段代码:
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 行上失败。我尝试将参数更改为唯一标识符并传递实际的 guid,但这也不起作用。
有人知道为什么这会在本地工作,但不能在远程服务器上工作吗?或者知道我可以修改代码以使其可能工作的方法吗?