2010-01-15 143 views
1

我有一個WCF服務將從位於客戶網絡中的HTML表單調用。WCF服務返回Response.Write

當同樣的形式張貼完全相同的數據到一個ASP頁面,預計類似這樣的回覆:

的Response.Write「SUCCESS」 & vbnewline

我怎樣才能從我的WCF發送相同的響應服務?

謝謝。

回答

5

WCF服務可以真的返回任何類型的數據。這涵蓋了基本的基本類型,如intstring,但您也可以創建更高級的複合類型(類)並將其發回。但是,WCF並不是爲了返回HTML標記而設計的 - 這是對事物完全錯誤的方法。 WCF是一種服務 - 一種服務提供了一些功能,你發送一些數據/參數,你會得到一些數據/輸出類型。

WCF不應該,而且必須永遠不會成爲對用戶端數據的實際表示關注 - 這就是你的用戶界面的工作 - 你正在處理的ASP頁面或什麼的。

所以,你可以有這樣的WCF服務:

[ServiceContract] 
interface IMyService 
{ 
    [OperationContract] 
    string SomeServiceMethod(string someInput); 
} 

,然後調用從您的客戶端代碼是這樣的:

string result = MyService.SomeServiceMethod("Hello!"); 

但你不應該永遠寫一個WCF服務,返回HTML標記或任何其他系統特定的信息。

而且由於WCF是一個基於消息的系統,WCF服務與您的ASP頁面完全沒有連接 - 它不能參與ASP生命週期或訪問「Response」對象或類似的東西。

+1

如果可以的話,我會多次投票。阿門。 – 2010-01-15 22:35:10

+0

馬克, 你絕對正確。 也許是不明智的使用WCF這樣的東西。 我不控制發佈到我的服務的ASP表單,該表單位於客戶的服務器,我無法更改它。 客戶端正在尋找單詞SUCCESS,否則它認爲對我的服務的呼叫失敗.. 我可以使用ASP頁接受呼叫,但我想使用WCF的perfomance。 – anon2009 2010-01-18 14:02:12

+0

@ anon2009:您肯定可以從您的WCF服務返回一個字符串,並將其設爲「SUCCESS」以表示成功完成。 – 2010-01-18 14:11:39