Если проект на том же сервере ссылается на проект WCF для доступа к его методам, это не говорит по HTTP, верно?
Если мой MVC-проект ссылается (обычная ссылка на проект, а не ссылка на сервис) на сервисный проект WCF, я не общаюсь, используя HTTP, верно?
Я хочу сделать свою службу WCF доступной для нескольких мобильных и сторонних клиентов через HTTP через Интернет, но мое собственное приложение я бы хотел использовать без HTTP из-за более высокой производительности.
То, что я сейчас делаю для достижения этого?
2 ответа
Если вы используете ссылку на проект (т. Е. Она отображается в папке "Ссылка", а не в папке "Справочник услуг"), то вы не используете HTTP. В этом случае вы делаете вызов непосредственно сборке /DLL. Я обычно разрабатываю свои приложения так, чтобы существовал сервисный уровень (иногда называемый прикладным уровнем), который в основном имитирует API, который представляет веб-служба. Это сборка, на которую можно ссылаться напрямую, если я не хочу распространять этот сервис. Тогда фактический веб-сервис - это просто тонкий слой поверх сервисного уровня, который обеспечивает фактическую привязку WCF и контракты для вызовов распределенных клиентов.
Это зависит от того, как вы его добавили. Если вы сделали это с помощью "Добавить ссылку на службу" и ваш app/web.config изобилует настройками клиента WCF, то, вероятно, это происходит через HTTP. Вы должны проверить параметры транспорта и адреса в вашей конфигурации. Если вы видите HTTP, то вы используете HTTP.
Даже если вы переключаетесь на именованные каналы, все равно есть издержки. Самым быстрым транспортом для местной связи, вероятно, является образец NullTransport, разработанный Романом Кисс.