powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net через nat
10 сообщений из 10, страница 1 из 1
ASP.Net через nat
    #34026667
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется сайт на 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 полный ноль, так как админю, а не программирую.

З.Ы. прошу по почкам не пинать, а объяснить или поделиться ссылкой. Спасибо!
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34026687
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Как обращается ASP к sql серверу

По идее, в web.config должна быть ConnectionString, там, скорее всего, написано имя компьютера и имя экземпляра sql server. Попробуйте вместо имени поставить IP компьютера. --
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34026764
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dkm_S>Как обращается ASP к sql серверу

По идее, в web.config должна быть ConnectionString, там, скорее всего, написано имя компьютера и имя экземпляра sql server. Попробуйте вместо имени поставить IP компьютера. --
Абыpвалг! - сказал Linux после pyсификации

у меня настроен System ODBC, там все указано (то есть имя подключения, ip-адрес сервера и порт). Пробовал даже через клиентские утилиты MS SQL (Connectivity). Все равно. Дело в том, что сайт работает, но первые просмотры вызывают такую ошибку. Да и если зайти с другого IP адреса (внешнего, из интернета), то высока вероятность, что вывалится такая ошибка...
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34026847
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень похожа ваша система на Шарепойнт, в котором такого не наблюдается. Из сразу видимых отличий - ваша ODBC. В Шарепойнте, как минимум, OLEDB используется. Может, где-то тут закопано...--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34026996
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот кстати описание моей проблемы. Решения пока не нашел :-(
General network error. Check your network documentation
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34027104
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. В трайсе увидел, что часто, практически перед каждой проыцедурой, выполняется

Код: plaintext
exec sp_reset_connection

Оно тут надо?

2. Все запросы к БД выполняются примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
		Dim oConnection as SQLConnection
		Dim oCommand as SQLCommand
		
		oConnection = new SQLConnection(Application("ConnectionString").ToString())
		oConnection.Open()

		oCommand = createCommand(oCommand, scope, oConnection)

		repNews.DataSource = oCommand.ExecuteReader()
		repNews.DataBind()
		
		oConnection.Close()

то есть коннекты закрываются...
Что еще может быть?
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34027155
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Решения пока не нашел

А Pooling=False не помогает? Вроде, и MS советует тоже.--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34029573
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно, протестировал разные варианты, и вот что получилось.

Без параметра 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. Что будет, если не будет возможности создать новый коннект?

Спасибо.
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34029992
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде бы, этот пулинг для повышения производительности и изобретён. При его использовании Connection.Close() соединение на самом деле не закрывает, а возвращает в пул, а следующая new Connection() получает свободную из пула (или открывается новая, если свободных нет). Соответственно, отключение пулинга должно приводить к открытию нового соединения всякий раз.
Почему это хозяйство не желает работать в ваших условиях - ХЗ.
--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
ASP.Net через nat
    #34030494
Orlic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В моих условиях это хозайство не работает по следующей причине. Между сервером приложений и 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() будет создавать новый коннект???
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.Net через nat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]