Почему моя реализация Keepalive работает в Visual Studio, но терпит неудачу после развертывания? [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Почему моя реализация Keepalive работает в Visual Studio, но терпит неудачу после развертывания? [закрыто]

Сообщение Anonymous »

У меня есть веб -приложение Azure, которое сбои с ошибкой тайм -аута 500 во время загрузки файла при превышении порога 4 минуты. Альтернативный подход, но бизнес отклонил вариант. Но когда тот же код развернут в нашей среде разработки, ошибка тайм -аута сохраняется.public void KeepActiveSessionAlive()
{
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
// Enabling keep-alive packets
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);

// Configure keep-alive settings (Note: These settings are Windows platform-specific)
byte[] keepAliveSettings = new byte[12];
BitConverter.GetBytes((uint)1).CopyTo(keepAliveSettings, 0); // Enable keep-alive
BitConverter.GetBytes((uint)30000).CopyTo(keepAliveSettings, 4); // Keep-alive time 30000 = 30 seconds
BitConverter.GetBytes((uint)10000).CopyTo(keepAliveSettings, 8); // Keep-alive interval (10 seconds)

// Apply keep-alive settings
socket.IOControl(IOControlCode.KeepAliveValues, keepAliveSettings, null);

// Apply keep-alive settings
socket.IOControl(IOControlCode.KeepAliveValues, keepAliveSettings, null);
}
}
< /code>
Мое ожидание состояло в том, что тот же код даст тот же результат после развертывания, но этого не произойдет. < /p>
добавить больше контекста. Я добавил журнал ИИ на каждом этапе загрузки после его начала для записи каждого шага и поймать каждое исключение приложения (если это произойдет) < /p>
Наблюдая за журналами, приложение сообщает о нулевых ошибках с помощью приложений и успешного завершения загрузки через 1 час 58 минут, но пользовательский интерфейс бросает эту ошибку через 4 минуты; Таким образом, пользователь никогда не получает загрузку на пользовательском интерфейсе, хотя приложение сообщает о завершении бэкэнд. 3,8 минуты

Методы, связанные с цепочкой обработки, которые производят загрузку, не являются асинтечными. Таким образом, после первоначального вызова он может занять до 45 минут, чтобы завершить процесс. Keep-alive был реализован, чтобы обойти эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/796 ... fter-deplo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»