2015-08-31 2 views
0

У меня есть служба Windows, которую я сделал через визуальную студию в C#. Он использует SignalR для подключения к базе данных SQl и получения уведомлений. Однако, когда я развертываю службу на самом сервере (Windows Server 2008R2), он не работает. Этот сервер также является сервером, на котором размещен сервер SQL.SignalR не работает на сервере

Это услуга SignalR с самообслуживанием. Он не использует IIS или что-то подобное для запуска. Он упакован как простая служба Windows. Поэтому у него нет проблем с типичными приложениями MVC, IIS (такими как/signalr/hubs pathing, web.config и т. Д.)

На моем компьютере разработки я использую IP-адрес WAN-сервера SQL для подключения к его базе данных. Когда я запускаю его, он делает все, что должен, и срабатывает при каждом изменении сервера.

На самом сервере служба устанавливается нормально, но не отключает никаких уведомлений. Я оставил IP как WAN IP для служб развития и планировал изменить его на localhost и т. Д., Когда он работает, но это не так.

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

Любые подсказки или идеи о том, почему это работает на моем компьютере разработки, но не на сервере?

Спасибо!

[Изменить] Я использую Windows 7 с Visual Studio 2013 в качестве моей установки разработки. Служба работает на localhost: 2165 (произвольный порт). Я могу получить доступ к этому адресу через веб-браузер на самом сервере.

+0

Можете ли вы попасть на свой сервер SignalR во время входа на сервер? Это может быть проблема с брандмауэром? –

ответ

-1

Вы не утверждаете, что ваша операционная система разработки, но если вы используете WebSockets, то вам необходимо иметь как минимум Windows 8 или Windows Server 2012.

Из документации, в supported platforms are (курсив мой):

Поддерживаемые сервера IIS версии

Когда SignalR размещается в IIS, следующие версии поддерживаются. Обратите внимание: если используется клиентская операционная система, например, для разработки (Windows 8 или Windows 7), нельзя использовать полные версии IIS или Cassini, так как будет установлено ограничение на 10 одновременных подключений, которое будет достигнуто очень быстро, поскольку соединения являются временными, часто восстанавливаются и не удаляются немедленно после того, как они больше не используются. IIS Express следует использовать в клиентских операционных системах.

отметить также, что для SignalR использовать WebSocket, IIS 8 или IIS 8 Экспресс должен быть использован, сервер должен использовать Windows 8, Windows Server 2012 или более поздней версии и WebSocket должен быть включен в IIS. Сведения о том, как включить WebSocket в IIS, см. В разделе Поддержка протокола IIS 8.0 WebSocket.

+2

Хотя то, что вы сказали, верно, оно не отвечает на вопрос. SignalR будет возвращаться к другим протоколам, если веб-сокеты недоступны, поэтому отсутствие сетевых носков не будет объяснять поведение, которое испытывает Клиффорд. – mason

Смежные вопросы