Почему в значениях свойств в разделах конфигурации web.config есть символьное ограничение?

1

Недавно я столкнулся с исключением, в котором говорится следующее:

Critical Unexpected Error Occured:System.Configuration.ConfigurationErrorsException: The value for the property 'foo' is not valid. The error is: The string must be no more than 999 characters long.

Однако я не могу найти какую-либо документацию по такой ошибке, и все, кажется, указывает, что для этих значений нет ограничения на характер.

Естественно, чтобы решить проблему, я могу сделать строку короче. Но это кажется интересным, что у него будет этот, казалось бы, произвольный характерный предел.

Есть ли какая-либо документация, которая будет иметь отношение к этой проблеме, чтобы описать, почему это происходит, и причины ограничения персонажа?

Полная трассировка стека выглядит следующим образом:

Critical Unexpected Error Occured:System.Configuration.ConfigurationErrorsException: The value for the property 'foo' is not valid. The error is: The string must be no more than 999 characters long. (C:\workspace\foobar\src\Manager\foo\bar.Web\web.config line 34) at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult) at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Web.HttpContext.GetSection(String sectionName) at System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName) at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)

  • 0
    Какова соответствующая конфигурация XML?
Теги:
asp.net-mvc
web-config

2 ответа

0
Лучший ответ

StringValidatorAttribute может налагать минимальную или максимальную длину в заданном свойстве.

Пример использования атрибута для доступа к объекту ConfigurationSection. Добавление строки длиной более 60 приведет к той же ошибке, которую вы указали:

[ConfigurationProperty("fileName", DefaultValue = "default.txt",
    IsRequired = true, IsKey = false)]
[StringValidator(InvalidCharacters = " ~!@#$%^&*()[]{}/;'\"|\\",
    MinLength = 1, MaxLength = 60)]
public string FileName
{
    get
    {
        return (string)this["fileName"];
    }
    set
    {
        this["fileName"] = value;
    }
}

Ссылка: https://msdn.microsoft.com/en-us/library/system.configuration.stringvalidatorattribute(v=vs.110).aspx

0

Зачем вам так долго понадобиться атрибут веб-конфигурации? Невозможно установить параметр приложения, указывающий на файл xml, где вы можете вручную создать каждый элемент, десериализовать его в объект и прочитать вместо него?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню