Недавно я столкнулся с исключением, в котором говорится следующее:
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)
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;
}
}
Зачем вам так долго понадобиться атрибут веб-конфигурации? Невозможно установить параметр приложения, указывающий на файл xml, где вы можете вручную создать каждый элемент, десериализовать его в объект и прочитать вместо него?