Внутренняя ошибка сервера 500 при настройке web.config с использованием maxWorkerThreads - PullRequest
0 голосов
/ 04 июня 2019

Я хотел бы повысить производительность веб-приложения ASP.NET на IIS.Иногда, когда к нему подключается много пользователей, это происходит слишком медленно.Это приложение использует режим InProc по умолчанию в качестве состояния сеанса.Перед тем, как попробовать веб-сад или веб-ферму, я решил попробовать другие альтернативы, такие как настройка следующих параметров в файле web.config в разделе system.web:

<system.web>  
    <processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>

    <httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>
</system.web>

После настройки этих параметров я не могу получить доступ к ASP.NETприложения, я получаю внутреннюю ошибку 500. Ошибка сервера.

Если я удаляю вышеуказанные настройки, приложение работает.

Сервер является виртуальной машиной и имеет процессор Intel® Xeon® E5 v3 с 12виртуальные процессоры.

Есть идеи?

1 Ответ

0 голосов
/ 04 июня 2019

Наконец-то я решил это.

Для работы строки ниже:

<processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>

... требуется изменение файла machine.config в:

systemroot\Windows\Microsoft.NET\Framework\VersionNumber\Config
systemroot\Windows\Microsoft.NET\Framework64\VersionNumber\Config

Если VersionNumber соответствует используемой версии .NET Framework, в моем случае это v4.0.30319

. Необходимо изменить allowDefinition с MachineOnly на MachineToApplication для раздела processModel в Machine.config file:

<section name="processModel" type="System.Web.Configuration.ProcessModelSection, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" allowDefinition="MachineToApplication" allowLocation="false" />

Наконец, виновник, потому что не работала нижняя строка:

<httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>

... была из-за того, что эта строка дублировалась несколькими строками ниже в сети.Файл конфигурации:

<httpRuntime targetFramework="4.5" maxRequestLength="102400" executionTimeout="3600" maxQueryStringLength="8192" />

, поэтому я объединил их в один:

<httpRuntime targetFramework="4.5" minFreeThreads="704" minLocalRequestFreeThreads="608" maxRequestLength="102400" executionTimeout="3600" maxQueryStringLength="8192" />

Интересующие ссылки :

...