Excel 插件上的 WCF

发布于 2024-11-17 22:55:58 字数 700 浏览 1 评论 0原文

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

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

客户端:
     - 用户在 Excel 工作簿上工作。为了将数据同步到应用程序服务器,Excel Addin 应该能够提供 Web 服务接口。应用程序服务器将定期轮询该客户端 Web 服务以获取更新的数据。

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

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

4) 您能想到的任何其他替代方案吗?

谢谢,
瓦米普

I've got a somewhat weird requirement and need to explore possibilities. Here's the requirement:

Server side(out of our control and scope to make any changes)
      - We have an Application server running on one machine.
      - The application server is supposed to read data from Web Services at regular intervals( to store
         into database for further processing).

Client side:
     - The users work on an Excel Work book. To synchronize their data to Application Server, the Excel Addin should be able to provide a web service interface. The Application Server will periodically poll this client side web service to obtain Updated data.

I am completely aware that it seems to be a wrong design and that the Application server should host a web service for reading data. But, this is what the situation demands.

My question:
1) Is there any remotest possibility that Excel Addin can host a web service?
2) Can a .Net based Addin host the web service using WCF?
3) If yes, can WCF provide exactly same web service interface as ASP.Net Web services? ( I read about BasicHTTPBinding, WSHTTPBinding, etc but could not find enough information to make a decision).

4) Any other alternatives that you can think of??

Thanks,
Vamyip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

残龙傲雪 2024-11-24 22:55:58

这是一个多么好的架构啊...

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

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

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

What an architecture ...

This is not a full answer to your question because I know almost nothing about Excel programming and possible issues with implementing this but it should be theoretically possible to host service in .NET plugin for Excel. I will just point what is needed for WCF:

  • Yes you need service with BasicHttpBinding but if you don't have WSDL + XSDs of expected interface it will be complex task to create compatible service for existing client.
  • You must self-host the service in the plugin (the question is if this requires some special permission in Excel)
  • To self-host HTTP based endpoint the client machine (vista, windows 7) must have http.sys installed (it needs IIS core which is available only in business / enterprise / ultimate version). I'm not sure what is needed on Windows XP.
  • To self-host service you need to configure the system to allow listening on the port (netsh - vista, windows 7 / httpcfg - xp and firewall)
  • Your server application needs to know all client machines where your application will run
  • Your server must "see" client machines (for example if your clients are laptops and they can connect outside of your network it will never work)

Why the hell is not the architecture done correctly by exposing single service on the application server and pushing data from clients to these service? An architect of this application should be fired immediately for total incompetence.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文