Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布/部署后更新角色停止工作_C#_Asp.net Mvc_Asp.net Mvc 5_Asp.net Identity_Asp.net Roles - Fatal编程技术网

C# 发布/部署后更新角色停止工作

C# 发布/部署后更新角色停止工作,c#,asp.net-mvc,asp.net-mvc-5,asp.net-identity,asp.net-roles,C#,Asp.net Mvc,Asp.net Mvc 5,Asp.net Identity,Asp.net Roles,我有一个使用了ASP.NET Identity的web应用程序,它在我的机器上运行良好,但当我在托管服务器上发布它时,角色系统部分停止工作 有一部分代码是我用来管理编辑角色的,下面是代码 string[] roles = { "Company", "User" }; //Assign Role to user Here var roleStore = new RoleStore<IdentityRole>(context);

我有一个使用了ASP.NET Identity的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");
            }
string[]角色={“公司”、“用户”};
//在此处为用户分配角色
var roleStore=新roleStore(上下文);
var roleManager=新roleManager(roleStore);
var userStore=新的userStore(上下文);
var userManager=newusermanager(userStore);
Roles.RemoveUserFromRoles(用户名,角色);
this.UserManager.RemoveFromRoles(company.Id,roles);
如果(公司批准)
{
this.UserManager.AddToRole(company.Id,“company”);
}
其他的
{
this.UserManager.AddToRole(company.Id,“User”);
}
注意:company.Id是用户Id,所以可以

同样,它在我的机器上运行良好,当我发布它时,它停止了工作,没有显示任何错误,它完成了这部分下面的其余代码

我猜它可能在web.config中的连接字符串中,但不确定它是什么

我希望我能找到一个解决方案,因为我已经搜索了一段时间,但什么也找不到

更新1:我发现它只在本地主机上工作,而在服务器上不工作。当我尝试从我的机器上的VS连接到托管服务器数据库并进行调试时,我发现它工作正常,但使用站点链接进行测试时它不工作


更新2:我终于知道了错误的来源,这是在角色管理器中设置应用程序名的原因,如何在托管时知道我的应用程序名?

您是在开发吗?也许您发布的环境正在尝试查看Localdb,但找不到它。另外,您是否尝试过调试部署后问题?嗯,是的,它是在Localdb上,然后当我上载时,我将连接字符串更改为服务器的数据库,以便它自动在那里创建表,我不确定这是否是正确的方法。我想知道的是,它不会抛出任何错误,所以我不知道问题出在哪里。您是否尝试过打开远程错误(前面评论中的链接)?这可能会有帮助。此外,如果您的应用程序正在服务器上生成日志文件,则可能需要将其挖掘出来。另一个好的技术是在本地运行它,但将本地实例指向远程数据库。然后基本上可以使用调试器来查看出了什么问题。同时,你能更详细地描述一下实际问题是什么吗?请检查更新1,我发现它在本地主机上运行良好,但在我使用site domain@trademarkUPDATE 2时不起作用:我终于知道错误来自何处,它来自于在roleManager中设置应用程序名,如何在托管时知道我的应用程序名?您是否在开发?也许您发布的环境正在尝试查看Localdb,但找不到它。另外,您是否尝试过调试部署后问题?嗯,是的,它是在Localdb上,然后当我上载时,我将连接字符串更改为服务器的数据库,以便它自动在那里创建表,我不确定这是否是正确的方法。我想知道的是,它不会抛出任何错误,所以我不知道问题出在哪里。您是否尝试过打开远程错误(前面评论中的链接)?这可能会有帮助。此外,如果您的应用程序正在服务器上生成日志文件,则可能需要将其挖掘出来。另一个好的技术是在本地运行它,但将本地实例指向远程数据库。然后基本上可以使用调试器来查看出了什么问题。同时,你能更详细地描述一下实际问题是什么吗?请检查更新1,我发现它在本地主机上运行良好,但在我使用site domain@trademarkUPDATE 2时不起作用:我终于知道错误来自何处,它来自于在roleManager中设置applicationName,在托管时如何知道我的applicationName?