#.net #asp.net-ajax
Вопрос:
Раньше я бегал .Чистый веб-сайт на Windows Server 2012 R2 я переместил веб-сайт на сервер 2019 года, и теперь все расширители Ajax и стандартные валидаторы перестали работать, но код по-прежнему работает без проблем. Я потратил много времени, пытаясь понять, почему. Веб — сайт нормально работает на локальном хосте внутри сервера, а также на моей локальной машине, я подозреваю, что может быть неправильная конфигурация либо в IIS, либо в web.config. Текущая версия библиотеки dll Ajax toolkit-3.0.2
Простой javascript работает, никаких ошибок при отладке страницы
?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
<system.webServer>
<handlers>
</handlers>
</system.webServer>
<system.web>
<compilation targetFramework="4.5">
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
</compilation>
Вот пример, который работает на локальном хосте и моей локальной машине, но не через IIS
form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" Text="rdfghbdgh"></asp:RequiredFieldValidator>
<br />
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server" ConfirmText="hcnccjcj" TargetControlID="Button1"></cc1:ConfirmButtonExtender>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</form>
Ответ №1:
После нескольких часов исследований эта проблема возникает из-за настройки в Plesk. В частности: большинство проверок JS зависят от ресурсов axd, которые блокируются системой ModSecurity в брандмауэре Plesk.
Чтобы решить эту проблему: вы должны установить фильтрацию ModSecuirty в положение «Обнаружение» или «Не включено«.
Надеюсь, это поможет другим.