IIS7 - только подает одну страницу за один раз. Это - создание меня сумасшедший!

Вы можете вернуть список абзацев

description = [item.text for item in soup.select('div.cn-content')]

и затем

return description
15
задан hlovdal 21 April 2009 в 22:02
поделиться

7 ответов

В IIS менеджер нажимают на приложение в дереве.

Дважды щелкните по ASP под разделом IIS.

Разверните "отладку свойств"

Удостоверьтесь и, "Включают Клиентскую Отладку" и, "Включают Серверную сторону, отлаживающую", имеют значение false.

Когда отладке включают, ASP ограничен обработкой одного запроса за один раз единственным потоковым способом.

29
ответ дан 1 December 2019 в 01:31
поделиться

В первую очередь: Удостоверьтесь, что Вы тестируете это с несколькими клиентами. Одиночный компьютер делает только 2 Запроса HTTP одновременно к тому же серверу (адрес IP). (Это - RFC speficiation.)

Если это не разрешает Вашу проблему, смотрит в IIS7-> ASP-> Сервисы->, COM Плюс Свойства-> Выполняются в MTA. Попытайтесь установить эту установку на "Истинный".

Надеюсь, это поможет.

4
ответ дан 1 December 2019 в 01:31
поделиться

Вы уверены, что у Вас нет зависимости в Вашем коде, который вызывает мертвую блокировку. Я видел это прежде, где вход, sql соединения и т.д. создает зависимость. Используйте perfmon и проверьте очередь чтения-записи жесткого диска, очередь чтения-записи памяти, чтобы видеть, создают ли вещи резервную копию.

Я настоятельно рекомендовал бы Tess Ferrandez (Инженер технической поддержки ASP.NET - Microsoft) блог для партий в понимании и способе узнать то, что происходит. Tess забыла больше об этом материале, чем большинство людей будет когда-либо знать.

Я думаю, что Вашей проблемой не является связанный IIS, но что-то в Вашем приложении, вероятно, в Вашем компоненте ActiveX. Удостоверьтесь, что Вы моетесь после своего компонента ActiveX. Вот часть кода, который я использую для чистки после использования Excel (Другой компонент Com). Помните, что Com не управляют.

    Private Sub ShutDownExcel()
    If objExcel IsNot Nothing Then
        objExcel.DisplayAlerts = True
        objExcel.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcel)
        objExcel = Nothing
    End If

    ' Clean up memory so Excel can shut down. 
    GC.Collect()
    GC.WaitForPendingFinalizers()

    ' The GC needs to be called twice in order to get the 
    ' Finalizers called - the first time in, it simply makes 
    ' a list of what is to be finalized, the second time in, 
    ' it actually the finalizing. Only then will the 
    ' object do its automatic ReleaseComObject. 
    GC.Collect()
    GC.WaitForPendingFinalizers()
End Sub

Надеюсь, это поможет.

2
ответ дан 1 December 2019 в 01:31
поделиться

IIS7 больше всего, конечно, многопоточен, таким образом, я предположил бы, что существует проблема с Вашим приложением.

Вы упомянули ActiveX для загрузки страницы из того же сервера - возможно, этот ActiveX не со свободными потоками, и это вызывает каждую страницу, которая использует его для выполнения единственного экземпляра?

BTW: Веб-Сад - тот же сервер useing несколько процессов - не может использовать незавершенную Веб-ферму сессии - несколько веб-серверов

0
ответ дан 1 December 2019 в 01:31
поделиться

Вы изменили "Управляемый конвейерный режим" на Пуле приложений "Классику" (значение по умолчанию "Интегрируется")? В противном случае попробуйте классиком.

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

И попытайтесь выключить буферизацию для тестовых страниц и заставьте их выложить что-то в каждом повторении. Буферизация (и кэширование), возможно, изменились в IIS7. Возможно, они обрабатываются одновременно, в конце концов, и просто буферизует, являются слишком большими для наблюдения различия.

Это - все, что прибывает по моему мнению прямо сейчас.


Я предполагаю, что Вы тестируете с очень простым случаем. Ваше приложение не делает (ни не протестируйте страницы, ни global.asa), используйте любые странные объекты, которые характерны для обоих запросов и так блокировка потребности.

0
ответ дан 1 December 2019 в 01:31
поделиться

Просто мысль, но если Вы переходите к веб-сайту в IIS, нажмите Limits... связываются слева, на что установлены ограничения соединения? Существует и макс. пропускная способность и макс. опции параллельных соединений там.

Я также перешел бы к Пулу приложений и нажал бы Advanced Settings... и проверил бы пределы Памяти и ЦП. Возможно даже создавая новый пул приложений с нуля без Управляемого кода, выбранного для устранения его.

0
ответ дан 1 December 2019 в 01:31
поделиться

Удостоверьтесь, что asp.net настроен для использования больше чем 1 рабочего потока. Эта статья MSDN объясняет, как установить этот параметр конфигурации.

0
ответ дан 1 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: