.NET Remoting на стороне сервера висит - PullRequest
4 голосов
/ 11 марта 2009

Между веб-приложением и базой данных находится приложение удаленного взаимодействия .net. Иногда мы получаем странную проблему. Удаленный вызов просто зависает и никогда не возвращается. Мы использовали пакетный сниффер для проверки трафика. Кажется, это проблема на стороне сервера. Если мы остановим серверное приложение, сетевое исключение будет выдано немедленно. Однако когда мы отлаживаем код сервера, он не попадает ни в какой код. Кажется, запрос заблокирован где-то внутри удаленных стеков. У кого-нибудь есть подобный опыт?

Ответы [ 2 ]

1 голос
/ 12 мая 2009

Оказывается, система CMS, которую мы используем, также использует .NET Remoting и перезаписывает наши настройки безопасности. Мы отключили настройки безопасности в нашем удаленном приложении, и теперь все работает нормально.

1 голос
/ 11 марта 2009

Я столкнулся с подобной проблемой в удаленном взаимодействии .Net довольно давно, используя IPC. Я не помню всех подробностей, так что прости меня. Проблема, которую я обнаружил, заключалась в том, что мое клиентское приложение выполняло удаленный вызов серверного приложения, которое занимало много времени (минут). После подключения клиента и сервера к отладчику и перехвата всех сгенерированных исключений, я обнаружил, что удаленный вызов на самом деле заканчивал тем, что выбрасывал исключение тайм-аута (моя память хочет сказать, что внутреннее сообщение было связано с COM), поскольку активность происходила по каналу IPC в течение периода ожидания. По-видимому, когда время этих удаленных соединений истекает, ссылки с обеих сторон по сути являются ходячими мертвецами. Странно, я только когда-либо мог видеть это исключение через отладчик - в режиме выпуска мое приложение просто зависало как ваше, без каких-либо указаний на то, почему. Я нашел параметры удаленного тайм-аута и просто отключил тайм-аут (или сделал его смехотворно большим, опять же, я точно не помню), что решило проблему.

...