2010-01-15 233 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