1

我有一个有点奇怪的要求,需要探索可能性。这是要求:

服务器端(超出我们的控制和范围进行任何更改)
      - 我们有一个应用程序服务器在一台机器上运行。
      - 应用程序服务器应该定期从 Web 服务读取数据(存储到数据库中以供进一步处理)。

客户端:
     - 用户在 Excel 工作簿上工作。要将它们的数据同步到 Application Server,Excel Addin 应该能够提供 Web 服务接口。Application Server 将定期轮询此客户端 Web 服务以获取更新的数据。

我完全意识到这似乎是一个错误的设计,并且应用程序服务器应该托管一个用于读取数据的 Web 服务。但是,这是形势所要求的。

我的问题:
1)Excel Addin 是否有可能托管 Web 服务?
2) 基于 .Net 的插件可以使用 WCF 托管 Web 服务吗?
3) 如果可以,WCF 能否提供与 ASP.Net Web 服务完全相同的 Web 服务接口?(我阅读了有关 BasicHTTPBinding、WSHTTPBinding 等的信息,但找不到足够的信息来做出决定)。

4)你能想到的任何其他选择?

谢谢,
瓦米普

4

1 回答 1

1

什么建筑...

这不是您问题的完整答案,因为我对 Excel 编程和实现它的可能问题几乎一无所知,但理论上应该可以在 Excel 的 .NET 插件中托管服务。我将指出 WCF 需要什么:

  • 是的,您需要服务,BasicHttpBinding但如果您没有预期接口的 WSDL + XSD,那么为现有客户端创建兼容服务将是一项复杂的任务。
  • 您必须在插件中自行托管服务(问题是这是否需要 Excel 中的某些特殊权限)
  • 要自托管基于 HTTP 的端点,客户端计算机(vista、windows 7)必须安装 http.sys(它需要 IIS 核心,该核心仅在商业/企业/终极版本中可用)。我不确定在 Windows XP 上需要什么。
  • 要自托管服务,您需要将系统配置为允许侦听端口(netsh - vista、windows 7 / httpcfg - xp 和防火墙)
  • 您的服务器应用程序需要知道您的应用程序将在其中运行的所有客户端计算机
  • 您的服务器必须“看到”客户端计算机(例如,如果您的客户端是笔记本电脑并且它们可以连接到您的网络之外,它将永远无法工作)

为什么通过在应用程序服务器上公开单个服务并将数据从客户端推送到这些服务来正确完成架构?这个应用程序的架构师应该因为完全无能而立即被解雇。

于 2011-06-28T06:49:29.050 回答