WCF в Excel Addin - PullRequest
       17

WCF в Excel Addin

1 голос
/ 28 июня 2011

У меня несколько странное требование и мне нужно изучить возможности. Вот требование:

Серверная часть (вне нашего контроля и возможности вносить какие-либо изменения)
- У нас есть сервер приложений, работающий на одной машине.
- Сервер приложений должен считывать данные из веб-сервисов через равные промежутки времени (для хранения в базу данных для дальнейшей обработки).

Клиентская сторона:
- Пользователи работают над книгой Excel. Чтобы синхронизировать свои данные с сервером приложений, надстройка Excel должна иметь возможность предоставлять интерфейс веб-службы. Сервер приложений будет периодически опрашивать эту клиентскую веб-службу для получения обновленных данных.

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

Мой вопрос:
1) Есть ли какая-нибудь отдаленная возможность, что Excel Addin может разместить веб-сервис?
2) Может ли основанный на .Net аддин разместить веб-сервис с использованием WCF?
3) Если да, может ли WCF предоставлять тот же интерфейс веб-службы, что и веб-службы ASP.Net? (Я читал о BasicHTTPBinding, WSHTTPBinding и т. Д., Но не смог найти достаточно информации для принятия решения).

4) Любые другие альтернативы, которые вы можете придумать ??

Спасибо,
Vamyip

1 Ответ

1 голос
/ 28 июня 2011

Что за архитектура ...

Это не полный ответ на ваш вопрос, потому что я почти ничего не знаю о программировании в Excel и возможных проблемах с его реализацией, но теоретически возможно размещение службы в плагине .NET для Excel. Я просто укажу, что нужно для WCF:

  • Да, вам нужен сервис с BasicHttpBinding, но если у вас нет WSDL + XSD ожидаемого интерфейса, будет сложно создать совместимый сервис для существующего клиента.
  • Вы должны самостоятельно разместить службу в плагине (вопрос в том, требуется ли для этого какое-то специальное разрешение в Excel)
  • Для самостоятельного размещения конечной точки на основе HTTP на клиентском компьютере (Vista, Windows 7) должен быть установлен http.sys (для этого требуется ядро ​​IIS, которое доступно только в версии для бизнеса / предприятия / конечной версии). Я не уверен, что нужно в Windows XP.
  • Для самостоятельного хостинга вам необходимо настроить систему так, чтобы она прослушивала порт (netsh - vista, windows 7 / httpcfg - xp и firewall)
  • Ваше серверное приложение должно знать все клиентские машины, на которых оно будет работать
  • Ваш сервер должен «видеть» клиентские машины (например, если ваши клиенты являются ноутбуками и могут подключаться за пределами вашей сети, он никогда не будет работать)

Почему, черт возьми, архитектура не выполняется правильно, предоставляя одну службу на сервере приложений и передавая данные от клиентов этой службе? Разработчик этого приложения должен быть немедленно уволен за полную некомпетентность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...