Websync 4.0 PublisherNotAllowed
У меня странная проблема с websync 4.0: он отлично работает на моей локальной машине, но при развертывании на тестовом сервере я получаю эту ошибку
System.Exception: Publication failed. result : {"channel":"\/n\/95e4d313-27eb-441b-966d-c8630f80ec9a","error":"606::Publisher access is disabled. Publisher access can be enabled by setting server[allowPublishers] to true in web.config.","ext":{"fm.meta":{"ticketID":""}}}
Дело в том, что у меня есть 2 веб-приложения, разработанные на.net:
- один для сайта
- один для веб-сервера
В обоих файлах web.config я добавил
<WebSync>
<server providerType="FM.WebSync.Server.Providers.Sticky.InProcProvider" httpDirectPublish="true"/>
</WebSync>
На localhost (где он работает просто отлично) оба приложения IIS указывают на localhost.
Из проекта веб-сайта я звоню через javascript, чтобы подписаться на канал, и он отлично работает как на моей машине, так и на тестовой машине.
Но когда я пытаюсь отправить сообщение (и приглашаю обе стороны присоединиться к частному каналу), оно работает только на моем локальном компьютере (отправка этого сообщения осуществляется через сообщение http методу с сервера веб-сайта, который выполняет публикацию на сервер websync, что приводит к этой ошибке.)
Есть идеи? Любая помощь приветствуется.
Михай
2 ответа
Хорошо. После дальнейшего расследования выясняется, что Websync не читал файл web.config (по неизвестной причине). Мне удалось это исправить, добавив в код следующую строку:
Config.Current.Server.AllowPublishers = true;
Где Config на самом деле fm.websync.server.config
Надеюсь, это поможет кому-то:)
Причина, по которой ваша веб-синхронизация "не читает web.config", заключается в том, что вы используете устаревшие настройки. httpDirectPublish
настройка была для WebSync 3. Для WebSync 4 она была переименована в allowPublishers
,
Документация по настройке WebSync 4 находится здесь: Документы по настройке WebSync 4
Ваш фрагмент web.config выше должен выглядеть следующим образом для WebSync 4:
<WebSync>
<server allowPublishers="true" providerType="FM.WebSync.Server.InProcProvider" />
</WebSync>
Обратите внимание FM.WebSync.Server.InProcProvider
по умолчанию, так что вы можете технически опустить эту конфигурацию.