CS0122: 'System.- Konfiguration.StringUtil' unzugänglich ist aufgrund seiner Schutzstufe
ich bin derzeit dabei ein Schulprojekt wobei ich zulassen kann, Schüler und Lehrer zu suchen, für Praktikum jobs.
Ich versuche zu bekommen, um die ASP.Net Konfiguration Benutzer hinzufügen und Rollen, aber ich habe diesen Fehler.
-
Server Error in '/asp.netwebadminfiles' Application.
Kompilierungsfehler Beschreibung: Fehler bei der
Kompilierung einer Ressource für diese Anforderung erforderlich. Bitte
überprüfen Sie die folgenden spezifischen Fehlerdetails, und ändern Sie Ihren source
den code entsprechend.Compiler-Fehlermeldung: CS0122: 'System.- Konfiguration.StringUtil " ist
unzugänglich aufgrund seiner Schutzstufe
Quelle Fehler:
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:
Source-Datei:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NETWebAdminFiles\App_Code\WebAdminPage.cs
Line: 989
-
Ist es trotzdem kann ich dieses Problem beheben oder muss ich wiederholen meine ganze Projekt?(hoffentlich nicht, weil theres eine Menge Arbeit zu erledigen.)
Ich bin ziemlich ein Neuling bei der Fehlersuche, so dass die Führungen Schritt für Schritt wird sehr geschätzt. danke!
- Es scheint ein problem mit dem letzten Rahmen .net 4.6 : seit der Installation von VS2015, ich habe das gleiche problem. Ich bin mir nicht sicher, aber ich denke, die deinstallation von VS2015 und .net Fx 4.6 das problem lösen kann.
- hat es funktioniert?
- Antwort für mich gearbeitet, ich habe nicht zu deinstallieren, alles
- Dies ist die beste Antwort, die ich gefunden habe, immer...--->> stackoverflow.com/a/33115202/5506779
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie die ASP.NETWebAdminFiles website mit Visual Studio
In Ihrem wesbite Projekt, suchen Sie den C# - Datei
Gehen Linie 989
Kommentieren Sie die Zeile aus
//string appId = StringUtil.GetNonRandomizedHashCode...
Fügen Sie eine neue Zeile
string appId = "1"
Speichern Sie die website, entfernen Sie es von Visual Studio
Ausführen von IIS Express in CMD
Führen Sie Ihr website -
In Visual Studio
Datei - Öffnen - Website
Springen: C:\Windows\Microsoft.NET\Framework\v4.0.30319\ASP.NETWebAdminFiles
Öffnen
Öffnen Sie nun App_Code\WebAdminPage.cs
Gehe Zu Zeile 989
Kommentieren Sie den aktuellen text, und fügen
nun erneut versuchen,
Das problem tritt auf, wenn Sie installiert die .NET Framework 4.6. Dies ist behoben, 4.6.1, so dass nur herunterladen (oder eine spätere version) behebt das Problem. Keine code-änderungen notwendig.
überprüfen Sie Ihre angestrebten Rahmen, wenn es 4.0 ist, dann ändern auf 3,5 und erstellen Sie das Projekt und öffnen asp.net Konfiguration es ist Arbeit für mich
StringUtil
ist eine (statische) Klasse, die in Ihrem Projekt. Diese Klasse ist wahrscheinlich definiert als:Dies bedeutet, dass Ihre
WebAdminPage
können es nicht sehen, weil esprivate
. Dadurch wird die Fehlermeldung, die Sie sehen. Ändern Sie es zu:Nun jede Klasse kann es jederzeit nutzen.
Lesen Sie mehr über den Schutz Ebenen in In der Dokumentation von Microsoft:
BEARBEITEN
Nach einem Blick in den Fehlercode wieder sehe ich, dass der namespace für
StringUtil
istSystem.Configuration.StringUtil
, was bedeutet, dass dies ein system-Klasse und nicht die Klasse in Ihrem Projekt.Nach Microsoft source code dieser Klasse ist definiert als
static internal class StringUtil
. Nach dem vorherigen link, über den Schutz Ebenen, können wir sehen, dass:Was bedeutet, dass die
StringUtil
- Klasse kann erst verwendet werden, die aus der assembly (DLL-Datei) ist es beschränkt in. Zu sehen, wie Sie können nicht fügen Sie Ihre eigenen code für Microsoft system-DLLs, die Sie nicht verwenden können, diese Methode (Wie Microsoft Hinzugefügt hat, die es für Ihre eigenen internen verwenden).StringUtil.GetNonRandomizedHashCode()
und wählen Sie "Gehe Zu Definition".appId
.ändern
zu
fix it