В настоящее время я использую многострочное текстовое поле, чтобы мои пользователи могли отправлять мне очень большие строки данных. Я заметил, что многострочные текстовые поля имеют максимальную емкость около 4 миллиардов символов или доступной памяти (в зависимости от того, что меньше). Строка, которую я использую для целей тестирования, намного меньше 4 миллиардов символов). Однако я все еще не могу отправить свои данные. Когда я нажимаю кнопку отправки, данные запрограммированы на запись в файл .txt в корневой папке, И данные печатаются на экране с использованием метки:
<asp:Label ID="lblmsg" Font-Bold="false" style="white-space:pre;" runat="server" Text=""></asp:Label>
В Safari я получаю требуемую ошибку проверки, прежде чем могу отправить. (Если я отключу код проверки, меня перенаправят на страницу ошибки моего веб-приложения при отправке.)
И в Chrome я не получаю ошибки проверки, я нажимаю «Отправить», ввод загружается на 100%, а затем я получаю страницу с ошибкой моего веб-приложения.
Я думаю, причиной моей ошибки может быть любая из возможных причин:
1) Либо лейбл, либо веб-приложение не могут обрабатывать столько данных на одной странице. Или же:
2) Я использую базовый план обслуживания веб-приложений Microsoft Azure для размещения своей веб-формы. Может быть, есть ограничение обработки, которое я нажимаю.
Вот код моего кода валидатора: (Хотя я не думаю, что это проблема.
<asp:RequiredFieldValidator ValidationGroup="g1" ControlToValidate="txtvalue" ForeColor="Red" ID="RequiredFieldValidator1" runat="server" ErrorMessage="empty or contains more than 4,294,967,295 characters (or an amount based on available memory, whichever is smaller)."></asp:RequiredFieldValidator>
<br /> <asp:RequiredFieldValidator ValidationGroup="g1" ControlToValidate="txtvalue2" ForeColor="Red" ID="RequiredFieldValidator2" runat="server" ErrorMessage=" empty or contains more than 4,294,967,295 characters (or an amount based on available memory, whichever is smaller.)"></asp:RequiredFieldValidator>
<br /> <asp:RegularExpressionValidator ValidationGroup="g1" ForeColor="Red" ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtvalue" ErrorMessage="Invalid delimiter format. Make sure to use one consistent delimeter: (comma, space, or tab)." ValidationExpression="^\s*-?[0-9][0-9]*\s*(?=([., \t]))(?:\s*(?:\1|\r?\n)\s*-?[0-9][0-9]*)+\s*$"></asp:RegularExpressionValidator>
<br /> <asp:RegularExpressionValidator ValidationGroup="g1" ForeColor="Red" ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtvalue2" ErrorMessage="Invalid delimiter format. Make sure to use one consistent delimeter: (comma, space, or tab)." ValidationExpression="^\s*-?[0-9][0-9]*\s*(?=([., \t]))(?:\s*(?:\1|\r?\n)\s*-?[0-9][0-9]*)+\s*$"></asp:RegularExpressionValidator>
Вот мой код web.config, который, я думаю, тоже подходит:
<configuration>
<system.web>
<compilation targetFramework="4.5" />
<!-- 50MB in kilobytes, default is 4096 or 4MB-->
<httpRuntime maxRequestLength="1073741824" executionTimeout="3600" targetFramework="4.5" />
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb-->
<requestLimits maxAllowedContentLength="52428800" />
</requestFiltering>
</security>
</system.webServer>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>
А вот ссылка на исходные данные, которые я тестирую.
System.Text.RegularExpressions.Regex
, которому вы передаете ошибочный ввод из файла, например, в небольшом консольном приложении, состоящем из нескольких строк. Это MCVE. Если это все еще воспроизводит проблему, это класс .NET Regex, а не ASP.NET/валидаторы. - person CodeCaster   schedule 24.08.2017