2009-11-28 78 views
1

我是WCF的新手,我想知道是否可以在自己的應用程序上創建WCF服務並將其託管在IIS上。然後另一個ASP.NET應用程序將使用它。到目前爲止,我所見過的所有例子都在同一個ASP.NET解決方案中有WCF服務。 如果是這樣,你能提供一些關於如何做的提示嗎?我想創建一個簡單的示例,根據id檢索人姓,然後從單獨的ASP.NET應用程序中使用它。WCF Web服務新手

謝謝。

回答

1

是的,你可以讓它「獨立」 - 在Visual Studio中啓動一個WCF應用程序 - 然後這個應用程序將託管在IIS中。

下面是非常基本的VS模板。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 

namespace WcfService1 
{ 
    // NOTE: If you change the class name "Service1" here, you must also update the reference to "Service1" in Web.config and in the associated .svc file. 
    public class Service1 : IService1 
    { 
     public string GetLastName(int id) 
     { 
      //Do Data Access here 
      string surname = "SomeSurname"; 
      return surname; 
     } 

     public CompositeType GetDataUsingDataContract(CompositeType composite) 
     { 
      if (composite.BoolValue) 
      { 
       composite.StringValue += "Suffix"; 
      } 
      return composite; 
     } 
    } 
} 
+0

您需要在文本編輯器中突出顯示您的代碼行,然後使用「代碼」按鈕(010 101)或按下鍵盤上的Ctrl-K以獲得這些行格式很好的格式(並突出顯示語法) – 2009-11-28 07:44:06

+0

謝謝koosk for你的榜樣。開始是非常好的。 – Erica 2009-11-28 15:03:00

1

是的,絕對 - 您的WCF服務可以住在類庫程序集中,並且它在IIS中託管的是花生。

另一個ASP.NET應用程序可以調用它並使用它的服務。沒有問題。

至於資源:有MSDN WCF Developer Center,其中有從初學者的教程,文章和示例代碼的一切。

此外,我建議你看看Pluralsight screen casts on WCF - 這是一個很好的系列,從「Creating your first WCF service」和「Creating your first WCF client」一直到相當先進的主題。 Aaron Skonnard在10-15分鐘的屏幕錄像中非常好地解釋了所有內容 - 強烈推薦!

+0

非常感謝你們的幫助。 – Erica 2009-11-28 14:57:50

+0

我已經在看你爲我鏈接的教程了,他們真的很棒。謝謝。 – Erica 2009-11-28 15:04:24

0

答案是肯定的(koosk和marc_s有很好的答案) - 但是這些例子的理由是值得一個簡短的評論。

如果你看一下例子,你可能會看到(至少)項目,一個用於樣品服務,一個用於消耗它的示例應用程序,在理論上可以拉動項目到單獨的解決方案,火服務起來,然後是消費應用程序,它仍然可以工作(理論上,因爲您需要將正確的依賴項放到兩個項目中)。

將客戶端和服務都放在同一個解決方案中的原因是因爲它使視覺工作室能夠更好地幫助您進行調試,當您啓動客戶端時,它將自動爲您啓動服務,然後您應該如果需要,可以從客戶端步入服務。

值得記住的是,一個解決方案可以包含任意數量的理論上不同的應用程序以及支持這些應用程序所需的庫等,它只是一個包裝 - 應用程序(在這種情況下,服務或客戶端)只是另一個項目解決方案。

+0

非常感謝您提供的信息,現在我明白了這些示例的原因是相同的解決方案。 – Erica 2009-11-28 15:01:15