我有一个使用了 ASP.NET身份的Web应用程序,它在我的计算机上运行良好,但是当我在托管服务器上将角色系统部分发布时>停止工作。
我曾经用于管理编辑角色的代码的一部分,这是下面的代码
string[] roles = { "Company", "User" };
//Assign Role to user Here
var roleStore = new RoleStore<IdentityRole>(context);
var roleManager = new RoleManager<IdentityRole>(roleStore);
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
Roles.RemoveUserFromRoles(username, roles);
this.UserManager.RemoveFromRoles(company.Id, roles);
if (company.Approved)
{
this.UserManager.AddToRole(company.Id, "Company");
}
else
{
this.UserManager.AddToRole(company.Id, "User");
}
注意:company.Id是用户ID,所以很好。
同样,它在我的机器上运行正常,当我发布它时,它停止工作并且未显示任何错误,并且该部分下面的其余代码均已完成。
我猜可能是web.config中的连接字符串中的某些内容,但不确定是什么。
我希望能找到解决方案,因为我已经搜索了一段时间找不到任何东西。
更新1:我发现它仅在本地主机上起作用,而在服务器上不起作用,当我尝试从我的机器从VS连接到托管服务器数据库并进行调试时,我发现它工作正常,但在使用站点链接进行测试时不起作用。
更新2:我终于知道错误是从哪里来的,这是通过在 roleManager 中设置 applicationName 来实现的,该怎么知道托管时我的applicationName是什么?