2010-10-14 37 views
1

我剛剛構建了一個通過WCF與服務器通信的Silverlight應用程序。我們來回傳達的數據是無縫的,說實話,很容易實現(W/SL)。不幸的是,我需要能夠從WCF請求相同的信息,類似於ASMX Web服務的信息。現在,我在本地運行服務(http://localhost/aps.svc),但我無法通過Web瀏覽器「調用」任何方法(類似於asmx Web服務)。例如:http://FooBar/Service/servic.aspx?op=GetName會返回一個名稱。我需要這種能力,因爲我們的第三方軟件僅限於使用web asmx服務,並且我想使用已經構建的WCF。查詢WCF與標準ASMX網絡服務相似

我對WCF和一般的Web服務相當陌生 - 所以任何幫助將不勝感激!

-Tom

回答

2

爲了直接在瀏覽器中使用您的WCF服務,您需要切換到REST風格的WCF服務。

有關WCF和REST的大量信息,請參閱WCF REST Developer Center

基本上,使用WCF REST,您可以「解決」您域中的所有資源爲資源; REST是面向資源的,而SOAP/ASMX是面向操作的。

所以,你可能不會有這樣的事情op=GetName在你的方法,而是類似:

http://yourserver/YourWCFRESTService.svc/SomeObjectOrResource/Name 

,這都將返回一個對象或資源的名稱「對象」,如XML或JSON數據流。

+0

太棒了!我會在今天下午晚些時候嘗試,並讓你知道它是如何發生的。 – arctek 2010-10-14 18:23:36

0

類似thisthis。總之,我不認爲這是可以做到的。

1

正如marc_s提到的,如果您將REST轉換爲REST或將其作爲一個端點,那麼您可以使其工作。

[OperationContract(Name = "RetrieveUser")] 
    [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/{op}")] 
    public System.IO.Stream RetrieveUser(String op) { ... } 

這可能使您得到操作員,然後正確響應。

我所做的是在工作完成的地方有一個控制器,而我的SOAP和REST服務只處理獲取請求並以正確的格式發回。

+0

謝謝詹姆斯 - 今天下午我會試試這些。我會讓你知道它是怎麼回事。 – arctek 2010-10-14 18:24:39