Произошла случайная ошибка соединения после удаления байпаса Fort inet FW из DMZ в LAN (истек срок ожидания семафора) - PullRequest
0 голосов
/ 23 апреля 2020

позвольте мне описать нашу среду:

  1. У нас есть сервер приложений (MS Windows Server) в нашей DMZ с IIS Server, ASP. NET приложения работают здесь.
  2. У нас есть серверы БД (MS SQL Server и Oracle) в нашей локальной сети
  3. Между DMZ и LAN существует межсетевой экран Fort inet

Мы раньше имел BYPASS от Windows сервера в DMZ до MS SQL сервера в локальной сети (физический кабель). Для этого была какая-то историческая причина ...

Недавно мы удалили этот обход, и сейчас все коммуникации проходят через брандмауэр. С этого момента началась следующая проблема:

1) Произошла следующая ошибка случайным образом, когда приложение пытается связаться с сервером SQL. Это случалось только иногда, это случайно ... Иногда это работает, но через пару минут возникает ошибка и после этого она снова работает. Мы ничего не видим в наших журналах FW (или мы не знаем, где именно искать).

A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.) System.ComponentModel.Win32Exception (0x80004005): The semaphore timeout period has expired
Source: 
StackTrace: 
at Page_Load(Object sender, EventArgs e) in test2.aspx.cs:line 16
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

2) Подобная ошибка возникает, когда приложение пытается установить связь с Oracle сервером. И снова, это происходит случайно ...

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Source: System
StackTrace: at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at OracleInternal.Network.ReaderStream.Read(OraBuf OB)

Мы не думаем, что это проблема самих приложений ASP. NET. Эта проблема касается всех приложений ASP. NET от разных поставщиков.

...