在删除的代码行上获取错误,这里发生了什么?

时间:2017-08-14 09:59:59

标签: c# asp.net visual-studio

尝试在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有些缓存错误吗?我的意思是评论的行在错误消息中可见...我不知道这里发生了什么。

1 个答案:

答案 0 :(得分:0)

我仍然对为什么以及如何发生这种情况感到困惑,但清理解决方案然后构建它解决了这个问题。