Я преобразовал приложение VB .Net 3.5, чтобы использовать одноранговый WCF, используя доступный пример приложения Чат. Я убедился, что скопировал файл app.config для примера (изменил имена для моего приложения), добавил соответствующие ссылки. Я следовал всем урокам и добавил соответствующие теги и структуру в код своего приложения. Все работает без ошибок, но клиенты получают сообщения только от себя, а не от других клиентов. Пример приложения чата прекрасно работает с несколькими клиентами. Единственное различие, которое я смог найти, заключается в том, что сервер в образце нацелен на фреймворк 2.0, но я предполагаю, что это неправильно, и он встраивает его как минимум в 3.0, иначе ссылка System.ServiceModel будет повреждена. Есть ли что-то, что должно быть зарегистрировано, что образец делает за кулисами, или это образец особого типа проекта? Я сбит с толку. Мой следующий шаг - скопировать все мои классы и логику из моего приложения в пример приложения, но это, вероятно, большая работа.
Вот мой клиент App.config:
<client><endpoint name="thldmEndPoint"
address="net.p2p://thldmMesh/thldmServer"
binding="netPeerTcpBinding"
bindingConfiguration="PeerTcpConfig"
contract="THLDM_Client.IGameService"></endpoint></client>
<bindings><netPeerTcpBinding>
<binding name="PeerTcpConfig" port="0">
<security mode="None"></security>
<resolver mode="Custom">
<custom address="net.tcp://localhost/thldmServer" binding="netTcpBinding"
bindingConfiguration="TcpConfig"></custom>
</resolver>
</binding></netPeerTcpBinding>
<netTcpBinding>
<binding name="TcpConfig">
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
Вот мой сервер App.config:
<services>
<service name="System.ServiceModel.PeerResolvers.CustomPeerResolverService">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost/thldmServer"/>
</baseAddresses>
</host>
<endpoint address="net.tcp://localhost/thldmServer"
binding="netTcpBinding"
bindingConfiguration="TcpConfig"
contract="System.ServiceModel.PeerResolvers.IPeerResolverContract">
</endpoint>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="TcpConfig">
<security mode="None"></security>
</binding>
</netTcpBinding>
</bindings>
Спасибо заранее.