尝试在web.config文件中编辑我的授权规则时出错,来自后面的代码。所以我删除了错误的代码。仍然有错误。认为它可能是视觉工作室的一个错误,所以我重新启动。仍然有错误。注释掉整个方法和对方法的调用。仍然得到错误。
Line 32: ////authorization.Rules.Set(0, accessRule);
Line 33: ////configuration.Save(ConfigurationSaveMode.Minimal);
Line 34: "**This is the red marked erroneous line**"
Line 35:
Line 36: //StackTrace stackTrace = new StackTrace();
这是什么黑魔法?该行没有代码,甚至没有调用该行,但我将错误报告为:
授权规则必须指定用户和/或角色列表。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Configuration.ConfigurationErrorsException: 授权规则必须指定用户和/或角色列表。
源文件:C:\ MyProject \ Accounts.aspx.cs行:34
然而,所有涉及授权的代码都被注释掉了,甚至没有调用该方法。方法:
public static void WriteAccsToAuth(List<User> allAllowedUsers)
{
//Configuration configuration = WebConfigurationManager.OpenWebConfiguration("~");
//AuthorizationSection authorization = (AuthorizationSection)configuration.GetSection("system.web/authorization");
//AuthorizationRule accessRule = new AuthorizationRule(AuthorizationRuleAction.Allow);
////foreach (User usr in allAllowedUsers)
////{
//// accessRule.Users.Add(usr.Domain + "\\" + usr.UserName);
////}
////Debug.WriteLine("Users count: " + accessRule.Users.Count);
////Debug.WriteLine("Rules count: " + authorization.Rules.Count);
////authorization.Rules.Set(0, accessRule);
////configuration.Save(ConfigurationSaveMode.Minimal);
"**This is the red marked erroneous line**"
//StackTrace stackTrace = new StackTrace();
//Debug.WriteLine("Users written to config file. Called by method " + stackTrace.GetFrame(1).GetMethod().Name + ".");
}
方法调用:
public static void LoadUsers()
{
...
//Accounts.WriteAccsToAuth(dbUsers.ToList());
...
}
我尝试过重建,重新启动Visual Studio并重新启动IIS。我的IIS有些缓存错误吗?我的意思是评论的行在错误消息中可见...我不知道这里发生了什么。
答案 0 :(得分:0)
我仍然对为什么以及如何发生这种情况感到困惑,但清理解决方案然后构建它解决了这个问题。