2016-10-18 7 views
0

So habe ich meine Connectionstrings auf meinem localhost verschlüsselt, und alles war gut .. es konnte ohne Probleme lesen.Ungültiger Verschlüsselungsschlüssel nach der Veröffentlichung der Website

Jetzt, nachdem ich mein Projekt auf meinem Webhote veröffentlicht habe, ist die Geschichte ganz anders.

ich folgende Fehlermeldung erhalten:

Key not valid for use in specified state. (Exception from HRESULT: 0x8009000B)

Ich frage mich, wenn ich es lokal entschlüsseln sollte und es danach verschlüsseln, nachdem es auf mein webhotel veröffentlicht wurde? Ich habe einen anderen Thread gesehen, wo Leute vorschlagen, dass ein Maschinenknopf hinzugefügt werden sollte. aber wo würde ich es platzieren, und wo würde ich es finden?

kann die ganze stacktrace here

ich folgendes cmd zu verschlüsseln verwendet werden gesehen:

aspnet_regiis -pef "connectionStrings" "PATH" -prov "DataProtectionConfigurationProvider" 
+0

Welchen Server verwenden Sie? Vielleicht versuchen Sie, einen Bibliotheksanruf nur für die Desktop-Programmierung zu verwenden? – Aristos

+0

es ist nur ein Standard-iis-Server, den ich gemietet habe –

Antwort

0

Also dachte ich, dass der folgende Fehler ergibt, wenn die Machinekey doesnt mit dem Schlüssel entspricht, wurde verwendet, um die Zeichenfolge an erster Stelle zu verschlüsseln (mein localhost).

Deshalb ich die folgende Methode machen musste:

private void ProtectSection(string sectionName, string provider) 
{ 
    Configuration config = WebConfigurationManager.OpenWebConfiguration("~/"); 
    ConfigurationSection section = config.GetSection(sectionName); 

    if (section != null && !section.SectionInformation.IsProtected) 
    { 
     section.SectionInformation.ProtectSection(provider); 
     config.Save(); 
    } 
} 

Und es Datei in meinem global.asax nennen ..

Dadurch, ich hochgeladen zuerst meine web.config ungeschützt und Dann fragte mein Web-Hotel meine Verbindungszeichenfolge, wenn die Website das erste Mal ausgeführt wurde. Offensichtlich verwendete es daher seinen eigenen Maschinenknopf, und nichts war daher in Konflikt geraten.

Verwandte Themen