2011-06-28 86 views
1

我有一個有點奇怪的要求,需要探索的可能性。這裏的要求:WCF在Excel Addin

服務器端(我們的控制和範圍作任何修改)
          - 我們有一個應用程序服務器一臺機器上運行。
          - 應用服務器應該定期讀取來自Web服務的數據(存儲                  到數據庫中進行進一步的處理)。

客戶端:
          - 該用戶在一個Excel工作簿工作。爲了將他們的數據同步到Application Server,Excel Addin應該能夠提供一個Web服務接口。應用程序服務器將定期輪詢此客戶端Web服務以獲取更新的數據。

我完全知道這似乎是錯誤的設計,應用程序服務器應該託管一個用於讀取數據的Web服務。但是,這是情況所要求的。

我的問題:
1)Excel Addin可以承載Web服務嗎?
2)基於.Net的Addin可以使用WCF託管Web服務嗎?
3)如果是,WCF可以提供與ASP.Net Web服務完全相同的Web服務接口嗎? (我讀過BasicHTTPBinding,WSHTTPBinding等,但找不到足夠的信息來作出決定)。

4)你可以想到的其他選擇?

謝謝
Vamyip

+0

我不明白爲什麼不,你試過了嗎?但是,您可能必須以管理員身份運行excel,但是,如果要打開端口進行監聽。 –

+0

您是否正在討論基於.Net的Addin,它使用WCF自己託管Web服務,而不使用IIS,但對於服務使用者而言,看起來與asmx Web服務相同? – vamyip

+0

是的,您可以自主主機並使用基本的http綁定。 –

回答

1

什麼架構?

這是不是一個完整的回答你的問題,因爲我幾乎一無所知的Excel編程和可能出現的問題與實施這一點,但它應該是理論上可以在.NET的.NET插件中爲Excel提供服務。我只想指出什麼是需要WCF:

  • 是的,你需要的服務與BasicHttpBinding,但如果你沒有預期的接口WSDL + XSD文件也將是複雜的任務,爲現有客戶創造服務兼容。
  • 你必須自我主機在插件中的服務(問題是,如果這需要在Excel中一些特殊的許可)
  • 爲自託管基於HTTP的終端客戶機(Vista中,Windows 7)必須有HTTP.SYS安裝(它需要只在商業/企業/最終版本中可用的IIS核心)。我不確定Windows XP需要什麼。
  • 爲自託管服務,您需要將系統配置爲允許在端口上偵聽(netsh的 - Vista中,Windows 7/httpcfg - XP和防火牆)
  • 您的服務器應用程序需要知道所有客戶端計算機在您的應用程序將運行
  • 您的服務器必須「看到」客戶機(例如,如果你的客戶是筆記本電腦,他們可以連接您的網絡它永遠不會工作以外)憑啥不被暴露做正確的架構

應用服務器上的單一服務並將數據從客戶端推送到這些服務?應用程序的架構師應立即被解僱,以完全無能。