WCF服务返回Response.Write
问题描述:
我有一个WCF服务将从位于客户网络中的HTML表单调用。WCF服务返回Response.Write
当同样的形式张贴完全相同的数据到一个ASP页面,预计类似这样的回复:
的Response.Write“SUCCESS” & vbnewline
我怎样才能从我的WCF发送相同的响应服务?
谢谢。
答
WCF服务可以真的返回任何类型的数据。这涵盖了基本的基本类型,如int
或string
,但您也可以创建更高级的复合类型(类)并将其发回。但是,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”对象或类似的东西。
如果可以的话,我会多次投票。阿门。 – 2010-01-15 22:35:10
马克, 你绝对正确。 也许是不明智的使用WCF这样的东西。 我不控制发布到我的服务的ASP表单,该表单位于客户的服务器,我无法更改它。 客户端正在寻找单词SUCCESS,否则它认为对我的服务的呼叫失败.. 我可以使用ASP页接受呼叫,但我想使用WCF的perfomance。 – anon2009 2010-01-18 14:02:12
@ anon2009:您肯定可以从您的WCF服务返回一个字符串,并将其设为“SUCCESS”以表示成功完成。 – 2010-01-18 14:11:39