2010-08-17 6 views
0

Я пытаюсь улучшить производительность приложения Silverlight 4 WCF RIA. Поскольку это только для использования в интранете, я решил переключиться с бинарной привязки HTTP по умолчанию на привязку Net.TCP, что может немного улучшить производительность.WCF RIA через привязку Net.TCP?

Однако, мне очень трудно получить простое доказательство применения концепции. У меня есть:

  • переключил доказательство conecpt приложения из Кассини в IIS (7)
  • добавлены соответствующие привязок и включены протоколы на IIS
  • добавил файл clientaccesspolicy.xml в мой корень IIS

Теперь, когда я создаю контекст, как так:

var context = new DomainService1(
new Uri(
    "net.tcp://localhost:4502/BusinessApplication/BusinessApplication2.Web/ClientBin/BusinessApplication2-Web-DomainService1.svc")); 

... Я получаю следующее сообщение об ошибке:

The provided URI scheme 'net.tcp' is invalid; expected 'http'. Parameter name: via 

Теперь я в тупике. Насколько я могу судить, проблема в том, что клиент, созданный сгенерированным сгенерированным кодом WCF RIA, должен сказать, что использовать конечную точку Net.TCP, но я не уверен, как это сделать.

Я нашел много сообщений в блоге, объясняющих, как получить услуги WCF, проходящие через Net.TCP, но я не нашел никого, кто говорил о WCF RIA, и я не могу найти никакой официальной документации. Все эти объяснения включают изменения в файле web.config, которые не подходят для приложения WCF RIA.

Может кто-нибудь, пожалуйста, объясните мне, как это настроить, или укажите мне какую-нибудь документацию?

+0

До сих пор это не выглядит возможным:»... RIA Services не поддерживает изменение (по крайней мере, не в соответствии с МС размещает на другой поток) тип привязки DomainContext. " на http://forums.silverlight.net/forums/p/149151/332402.aspx. –

ответ

0

Услуги WCF RIA зависят от HttpContext, который недоступен при связывании Net.TCP.

Что касается первоочередных вопросов, не могли бы вы немного подробнее остановиться? Каков запрос/операция узкого места? Каков размер данных (размер сущности объекта x)? Какова дельта между вашими первыми требованиями и текущим перфомансом?

Возможно, существуют и другие способы, которые не включают Net.TCP?

Спасибо.

Динеш

(WCF RIA Services Program Manager)

+0

Динеш, спасибо за ответ. В ~ 600 символах: мы извлекаем точки для диаграммы с сервера, а затем вызываем сервер для выполнения статистических операций несколько раз, каждый раз выбирая новый набор точек. Это заменяет устаревшее приложение VBA, которое должно выполняться почти мгновенно из-за количества статистических операций, запрошенных в реальном времени. Задержка в 30 мс оказалась приемлемой при испытаниях прототипов. Мы получаем от 30 до 100 объектов после каждой операции, суммарно ~ 12 кБ в соответствии с Fiddler. Текущее круговое движение> 100 мс. –

+0

О, и в случае, если вам интересно, мы не знали об абсолютных требованиях к производительности _before_, мы начали путь по архитектуре WS. Оглядываясь назад, мы должны были создать прототипы различной производительности _first_, тем самым определив некоторые жесткие числа для требуемой производительности и включив их (как автоматизированные тесты производительности?) с самого начала. –