CS0122:' System.Configuration.StringUtil'由于其保护级别而无法访问

时间:2015-08-20 11:02:15

标签: c# asp.net configuration

我目前正在做一个学校项目,我可以让学生和老师搜索工作间的工作。

我正在尝试使用ASP.Net配置来添加用户和角色,但是我收到了这个错误。

-

  &p; /asp.netwebadminfiles'中的

服务器错误;应用

     

编译错误说明:期间发生错误   编译服务此请求所需的资源。请   查看以下特定错误详细信息并修改您的来源   代码恰当。

     

编译器错误消息:CS0122:' System.Configuration.StringUtil'是   由于其保护级别无法访问

来源错误:

Line 987:
Line 988:             // Put together some unique app id
Line 989:             string appId = StringUtil.GetNonRandomizedHashCode(String.Concat(appPath, appPhysPath)).ToString("x", CultureInfo.InvariantCulture);
Line 990:
Line 991:
  

源文件:   C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ ASP.NETWebAdminFiles \ App_Code文件\ WebAdminPage.cs   行:989

-

无论如何我可以解决这个问题,还是我必须重做我的整个项目?(希望不是因为完成了很多工作。)

我是故障排除的新手,所以一步一步指南将不胜感激。谢谢!

5 个答案:

答案 0 :(得分:1)

在Visual Studio中

档案 - 开放 - 网站

GoTo:C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ASP.NETWebAdminFiles

打开

现在打开App_Code \ WebAdminPage.cs

GoTo 989号线

注释掉当前文字并粘贴

string appId = (String.Concat(appPath, appPhysPath).GetHashCode()).ToString("x", CultureInfo.InvariantCulture);

现在重新尝试

答案 1 :(得分:0)

如果安装了.NET Framework 4.6 ,则会出现此问题。这已在4.6。 1 中修复,因此只需downloading它(或更高版本)即可解决问题。无需更改代码。

答案 2 :(得分:0)

检查你的目标框架,如果它是4.0然后改为3.5并构建项目并打开asp.net配置它对我有用

答案 3 :(得分:-1)

StringUtil是项目中的(静态)类。这个类很可能被定义为:

private static void StringUtil

这意味着您的WebAdminPage无法看到它,因为它是private。这将导致您看到的错误。将其更改为:

public static void StringUtil

现在任何课程都可以随时使用。

详细了解Microsoft's documentation中的保护级别:

修改

再次查看错误代码后,我发现StringUtil的命名空间是System.Configuration.StringUtil,这意味着这是一个系统类,而不是项目中的类。 根据{{​​3}},此类定义为static internal class StringUtil。按照上一个关于保护级别的链接,我们可以看到:

  

内部:访问仅限于当前程序集

这意味着StringUtil类只能在它所限制的程序集(DLL文件)中使用。看到你无法将自己的代码添加到Microsoft的系统DLL中,您无法使用此方法(因为Microsoft已将其添加为自己的内部使用)。

答案 4 :(得分:-2)

变化

string appId = StringUtil.GetNonRandomizedHashCode(String.Concat(appPath, appPhysPath)).ToString("x", CultureInfo.InvariantCulture);

string appId = ToString();

修复它