2016-07-23 16 views
0

Ich versuche, Einstellungen für ein benutzerdefiniertes Modul zu erstellen. Ich aktualisiere von Version 8 zu Version 9. Der Code funktionierte gut für Version 8. Ich teste den Code auf default2.aspx. Hier ist mein Code und Fehler:Kentico 9 Globale Einstellung wurde für Schlüsselname nicht gefunden

Fehler:

Global setting was not found for key name 'AvalaraJMALicenseKeyStartDate'

Der Code zeigt die Fehler hier:

SettingsKeyInfoProvider.SetSettingsKeyInfo(si); 

Code:

//Insert new SettingsKey into database 
    string siteName = CMS.SiteProvider.SiteContext.CurrentSiteName; 
    int siteID = CMS.SiteProvider.SiteContext.CurrentSiteID; 
    DataSet sites = CMS.SiteProvider.SiteInfoProvider.GetSites(); 

    /// <summary> 
    /// creates custom settings for JMA Kentico Software in settings area of site manager 
    /// </summary> 
    public void CreateAvalaraSettings() 
    { 

     //create the avalara category, if it doesn't exist 
     SettingsCategoryInfo category = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName("JMA.Avalara"); 
     if (category == null) 
     { 
      SettingsCategoryInfo se = new SettingsCategoryInfo(); 
      se.CategoryName = "JMA.Avalara"; 
      se.CategoryDisplayName = "Avalara"; 
      SettingsCategoryInfoProvider.SetSettingsCategoryInfo(se); 
     } 

     #region avalara settings 

     //if the setting does not exist, then create it 
     if (SettingsKeyInfoProvider.GetSettingsKeyInfo(siteName + ".AvalaraJMALicenseKeyStartDate", siteID) == null) 
     { 
      // Create and set up new SettingsKey 
      SettingsKeyInfo si = new SettingsKeyInfo(); 
      si.KeyName = siteName + ".AvalaraJMALicenseKeyStartDate"; 
      si.KeyDisplayName = "AvalaraJMALicenseKeyStartDate"; 
      si.KeyDescription = "AvalaraJMALicenseKeyStartDate"; 
      si.KeyType = "string"; 
      si.KeyDefaultValue = DateTime.Now.ToString(); 
      si.KeyValue = DateTime.Now.ToString(); 
      si.SiteID = siteID; 
      si.KeyIsGlobal = false; 
      si.KeyCategoryID = category.CategoryID; 
      SettingsKeyInfoProvider.SetSettingsKeyInfo(si); 

     } 
+0

Bei welcher Zeile erhalten Sie den Fehler? Wann wird der Code ausgeführt/aufgerufen (App-Init oder woanders)? – rocky

+1

Was Sie erhalten, ist kein Fehler, es wird angegeben, dass der Schlüssel nicht gefunden werden kann. Eine Sache, die mir sofort aufgefallen ist, war der Name Ihrer Schlüsselkategorie. Sie sollte nicht mit CMS vorangestellt werden. Sie sollten Ihren eigenen Namespace und nicht den 'CMS'-Namespace als Dokumentationszustände verwenden. Zweitens, wo ist die Variable 'siteName' aufgefüllt und ist sie mit dem korrekten Wert gefüllt? –

+0

Hallo, ich habe die Anpassungen vorgenommen und ich habe gesagt, welche Zeile den Fehler wirft. Mein Problem besteht immer noch. Überprüfe ich noch die globalen Einstellungen? –

Antwort

0

ich diesen Code entfernt und es funktionierte :

si.SiteID = siteID; 
si.KeyIsGlobal = false;