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);
}
どのラインでエラーが表示されますか?コードはいつ実行され/呼び出されますか(アプリのinitなど)? – rocky
あなたが受け取ったのはエラーではなく、そのキーを見つけることができないということです。私がすぐ気づいたのはあなたの主要なカテゴリ名でした。それに 'CMS'という接頭語を付けるべきではありません。ドキュメントの状態としては 'CMS'名前空間ではなく、独自の名前空間を使うべきです。次に、 'siteName'変数はどこに移入され、正しい値が入力されていますか? –
こんにちは、私は調整を行い、私はどのような行がエラーをスローすると言った。私の問題は依然として続きます。私はまだグローバル設定をチェックしていますか? –