2016-07-23 4 views
0

カスタムモジュールの設定を作成しようとしています。私はバージョン8からバージョン9にアップグレードしています。コードはバージョン8でうまくいきました。私はdefault2.aspxでコードをテストしています。ここに私のコードとエラーがある:Kentico 9キー名のグローバル設定が見つかりません

エラー:

Global setting was not found for key name 'AvalaraJMALicenseKeyStartDate'

コードここでエラーを示しています

SettingsKeyInfoProvider.SetSettingsKeyInfo(si); 

はコード:

//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

どのラインでエラーが表示されますか?コードはいつ実行され/呼び出されますか(アプリのinitなど)? – rocky

+1

あなたが受け取ったのはエラーではなく、そのキーを見つけることができないということです。私がすぐ気づいたのはあなたの主要なカテゴリ名でした。それに 'CMS'という接頭語を付けるべきではありません。ドキュメントの状態としては 'CMS'名前空間ではなく、独自の名前空間を使うべきです。次に、 'siteName'変数はどこに移入され、正しい値が入力されていますか? –

+0

こんにちは、私は調整を行い、私はどのような行がエラーをスローすると言った。私の問題は依然として続きます。私はまだグローバル設定をチェックしていますか? –

答えて

0

私はこのコードを削除し、それが働きました:

si.SiteID = siteID; 
si.KeyIsGlobal = false; 
関連する問題