Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
Имеется сайт на ASP.Net (win 2k3 web edition). Вся структура сайта и контент основаны на MS SQL Server (система управления сайтом, навигация, аккаунты и прочее)... Web-сервер в отдельной подсети (ДМЗ-зона), доступ к SQL серверу через файрволл. Между ними открыт только порт SQL сервера (TCP/1433). Все остальное (включая ICMP, NetBIOS и UDP) запрещено. Так вот собственно вопрос. После загрузки сервера с файрволл при первом коннекте к сайту получаю ошибку: автор Server Error in '/' Application. ________________________________________ General network error. Check your network documentation. на строке DataSource = oCommand.ExecuteReader() и тд и тп. и так несколько раз, пока не нажмешь Ctrl + F5 в браузере раз 5! Почему так? Как обращается ASP к sql серверу ? нужны ли ему UDP/1434 или еще какие порты или протоколы? Я в ASP полный ноль, так как админю, а не программирую. З.Ы. прошу по почкам не пинать, а объяснить или поделиться ссылкой. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 17:09 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
>Как обращается ASP к sql серверу По идее, в web.config должна быть ConnectionString, там, скорее всего, написано имя компьютера и имя экземпляра sql server. Попробуйте вместо имени поставить IP компьютера. -- Абыpвалг! - сказал Linux после pyсификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 17:14 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
Dkm_S>Как обращается ASP к sql серверу По идее, в web.config должна быть ConnectionString, там, скорее всего, написано имя компьютера и имя экземпляра sql server. Попробуйте вместо имени поставить IP компьютера. -- Абыpвалг! - сказал Linux после pyсификации у меня настроен System ODBC, там все указано (то есть имя подключения, ip-адрес сервера и порт). Пробовал даже через клиентские утилиты MS SQL (Connectivity). Все равно. Дело в том, что сайт работает, но первые просмотры вызывают такую ошибку. Да и если зайти с другого IP адреса (внешнего, из интернета), то высока вероятность, что вывалится такая ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 17:35 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
Очень похожа ваша система на Шарепойнт, в котором такого не наблюдается. Из сразу видимых отличий - ваша ODBC. В Шарепойнте, как минимум, OLEDB используется. Может, где-то тут закопано...-- Абыpвалг! - сказал Linux после pyсификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 17:59 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
вот кстати описание моей проблемы. Решения пока не нашел :-( General network error. Check your network documentation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 18:56 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
1. В трайсе увидел, что часто, практически перед каждой проыцедурой, выполняется Код: plaintext Оно тут надо? 2. Все запросы к БД выполняются примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Что еще может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 20:17 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
>Решения пока не нашел А Pooling=False не помогает? Вроде, и MS советует тоже.-- Абыpвалг! - сказал Linux после pyсификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2006, 20:47 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
Собственно, протестировал разные варианты, и вот что получилось. Без параметра pooling=false при загрузке сайта в браузере первой процедурой выполнялось exec sp_reset_connection далее шла уже логика сайта. Добавил pooling=false. При загрузке сайта сразу выполняется -- network protocol: TCP/IP set quoted_identifier on set implicit_transactions off set cursor_close_on_commit off set ansi_warnings on set ansi_padding on set ansi_nulls on set concat_null_yields_null on set language us_english set dateformat mdy set datefirst 7 и процедура логики сайта. Новый коннекшн??? Далее. Смотрю статистику на файрволе между web и sql. Раньше было порядка 10 различный конектов между ними, теперь же количество конектов значительно возросло (до 30 и выше при 2-ух одновременных подключениях клиентов). Они, конечно, по таймауту умрут, и будут создаваться новые (я прав?). Вопросы: 1. Как влияет на производительность сервера pooling=false ? 2. Как влияет на нагрузку сети? 3. Что будет, если не будет возможности создать новый коннект? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 17:36 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
Вроде бы, этот пулинг для повышения производительности и изобретён. При его использовании Connection.Close() соединение на самом деле не закрывает, а возвращает в пул, а следующая new Connection() получает свободную из пула (или открывается новая, если свободных нет). Соответственно, отключение пулинга должно приводить к открытию нового соединения всякий раз. Почему это хозяйство не желает работать в ваших условиях - ХЗ. -- Абыpвалг! - сказал Linux после pyсификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2006, 20:20 |
|
||
|
ASP.Net через nat
|
|||
|---|---|---|---|
|
#18+
В моих условиях это хозайство не работает по следующей причине. Между сервером приложений и sql-сервером находится файрвол, который при коннекте создает правило, разрешающее трафик. Это правило имеет определенный срок жизни, следовательно, пока коннект находится в пуле, разрешающее правило может уже устареть, и соответственно, при его использовании asp упирается в стену. Вот только странно, почему так происходит иногда даже у тех, кто и sql сервер, и asp запускает на одном сервере (тестовом ПК)? Описание таких случаев было тут . Интересно, кто нибудь оценивал, насколько же падает производительность при pooling=false ??? Читаю сейчас BOL в SQL, там есть такая опция, как MAX_CONNECTIONS (SELECT @@MAX_CONNECTIONS). Цитирую: BOL user connections helps avoid overloading the server with too many concurrent connections. You can estimate the number of connections based on system and user requirements. For example, on a system with many users, each user would not usually require a unique connection. Connections can be shared among users. Users who are running OLE DB applications need a connection for each open connection object, users who are running ODBC applications need a connection for each active connection handle in the application, and users who are running DB-Library applications need one connection for each process started that calls the DB-Library dbopen function. Так вот, что будет происходить на sql сервере при одновременной работе на сайте 100 пользователей? Для каждого пользователся каждый new Connection() будет создавать новый коннект??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2006, 09:19 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=863&tid=1388950]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 410ms |

| 0 / 0 |
