Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
К сожалению, на данный момент SignalR не позволяет использовать вебсокеты под Mono, поэтому была предпринята попытка в качестве транспорта использовать Long Polling.
В чем дело: HTTP WCF Mono сервис имеет много мелких различий по сравнению с Microsoft версией (например, небольшие различия в xml при сериализации; в mono версии расширения нельзя указать через атрибуты, только через конфигурационный файл; отсутсвует HttpContext.Current, и так далее).WCF скоро скопипастят из .NET 4.6, прогресс копипасты можно смотреть тут, а при желании просто собрать самостоятельно и таскать за собой нужную реализацию.
И все хорошо, но стактрейсы оно показывало урезано — без номеров строк и имен процедур.переменная окружения MONO_OPTIONS=--debug включает загрузку символов. Если они в pdb, то их надо сконвертить в mdb специальной утилитой.
Шарпдевелоп тогда вообще не умел делать проекты для xsp2, как сейчас — не знаю.MonoDevelop сто лет как умеет под XSP запускать, вероятно, у вас что-то было недоустановлено.
И еще там запомнился странный баг компилятора. Если в одном из файлов проекта в определенном месте добавить пробел — в шарпдевелопе под линуксом оно не собиралось. В последующих версиях, я пробовал — этот баг уже исправили, но все равно сам факт такого бага выглядит странным.Не понимаю, зачем собирать чем-то кроме студии, но вам виднее.
Но на этапе нагрузочного тестирования SignalR-сервер падал с исключением System.IO.IOException: «Too many open files» — примерно после тысячи подключений клиентов.
Первые шаги к онлайн-офису на Linux или как мы портировали под Mono (о сложностях и их преодолении)