2013-01-09 60 views
1

我有一個goofball開發的項目,他決定在使用它的Web應用程序中嵌套一個依賴WebService。這導致發佈更改時出現問題,因爲如果不首先發布更改,則無法更新WebService,並且不能在發佈位置未更新WebService的情況下發布更改。這完全是自相矛盾的。在Web應用程序中的Web服務

有關如何解決這個問題的任何建議?我認爲最好將WebService抽出到一個可以獨立發佈的單獨項目中(畢竟這是最好的做法,不是嗎?)。另外請注意,我已經將項目更新爲.NET 4,它可以選擇使用WCF服務,但是如果這需要對項目進行重大修改,那麼我希望儘可能簡單。

很難提供任何代碼來說明這個問題,但這裏是項目的基本層次結構。

Solution 
    Project 
     WebService 
      MyService 'This is a reference to the Web Service 
     Service 
      MyService.asmx 'This is the actual code for the Web Service 
     [Other Code Pages within the project] 

編輯:如果我這樣做呢?這樣,它們可以彼此獨立編譯和發佈。

Solution 
    Project - App 
     Web Reference 
      MyService 'This is a reference to the Web Service 
     [Other Code Pages within the project] 
    Project - Service 
     Service 
      MyService.asmx 'This is the actual code for the Web Service 

剩下的唯一決定(假設這是推薦的方法)是創建WCF服務庫還是創建WCF服務應用程序? (請記住,此服務僅供此應用程序使用,不能由任何其他人共享)。

回答

2

我肯定會將Web服務提取到一個新項目中。

此外,如果有其他的「共享」的代碼(類,模塊),這是項目之間共同的,你有一對夫婦的選擇,這取決於需要多少代碼共享:

1)鏈接來自一個項目或另一個項目的源文件(以便您只有該類的單個物理副本)

2)創建一個DLL項目,每個項目引用然後將共享代碼移動到該項目。

3)(顯然)複製每個項目中的代碼。

+0

值得注意的是,這個特定的Web服務僅用於這一個應用程序。至於共享DLL,我對這個關於庫/程序集的概念很熟悉,但不知道如何使用Web服務來完成這個工作。 – Chiramisu

+0

另一個想法發生在我身上。我已經更新了我的問題。 – Chiramisu

+1

你的方法絕對是我的建議。對於WCF的決定,我建議你看看http://stackoverflow.com/questions/1423065/what-is-the-purpose-of-wcf-service-library –