2016-07-23 3 views
0

사용자 지정 모듈에 대한 설정을 만들려고합니다. 버전 8에서 버전 9로 업그레이드 중입니다. 코드는 버전 8에서 정상적으로 작동합니다. default2.aspx에서 코드를 테스트하고 있습니다.Kentico 9 키 이름에 대해 전체 설정을 찾을 수 없습니다.

오류 :

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

어디서 오류가 발생합니까? 코드가 실행/호출되는시기 (앱 초기화 또는 다른 곳)? – rocky

+1

받은 편지함에 오류가 없습니다. 해당 키를 찾을 수 없다는 메시지가 나타납니다. 한가지 주목할 점은 당신의 주요 카테고리 이름이 바로 'CMS'입니다. 문서화 상태에서'네임 스페이스 '가 아닌 네임 스페이스를 사용해야합니다. 둘째로, 'siteName' 변수는 어디에 채워지고 올바른 값으로 채워지 는가? –

+0

안녕하세요, 조정을했고 어떤 줄이 오류를 throw하는지 말했습니다. 내 문제는 여전히 지속됩니다. 글로벌 설정을 계속 확인하고 있습니까? –

답변

0

나는이 코드를 제거하고 일

Global setting was not found for key name 'AvalaraJMALicenseKeyStartDate'

코드는 여기에 오류 보여줍니다 여기에 내 코드 및 오류입니다 :

si.SiteID = siteID; 
si.KeyIsGlobal = false; 
관련 문제