WCF服务返回响应。写入

WCF服务返回响应。写入,wcf,response.write,Wcf,Response.write,我有一个WCF服务,它将从位于客户网络中的HTML表单调用 当同一表单将完全相同的数据发布到ASP页面时,它希望得到如下响应: 回答。写“成功”&vbnewline 如何从WCF服务发送相同的响应 谢谢。WCF服务可以返回任何类型的数据,真的。这涵盖了基本的基本类型,如int或string,但您也可以创建更高级的复合类型(类)并将它们发送回 然而:WCF并不是为了返回HTML标记而设计的——这将是一种完全错误的方法。WCF是一种服务—服务提供一些功能,您可以发送一些数据/参数,返回一些数据/输出

我有一个WCF服务,它将从位于客户网络中的HTML表单调用

当同一表单将完全相同的数据发布到ASP页面时,它希望得到如下响应:

回答。写“成功”&vbnewline

如何从WCF服务发送相同的响应


谢谢。

WCF服务可以返回任何类型的数据,真的。这涵盖了基本的基本类型,如
int
string
,但您也可以创建更高级的复合类型(类)并将它们发送回

然而:WCF并不是为了返回HTML标记而设计的——这将是一种完全错误的方法。WCF是一种服务—服务提供一些功能,您可以发送一些数据/参数,返回一些数据/输出类型

WCF不应该也决不能关心用户端数据的实际表示(这是用户界面的工作)、ASP页面或您正在处理的任何内容

因此,您可以使用如下WCF服务:

[ServiceContract]
interface IMyService
{
  [OperationContract]
  string SomeServiceMethod(string someInput);
}
string result = MyService.SomeServiceMethod("Hello!");
然后从客户机代码中调用它,如下所示:

[ServiceContract]
interface IMyService
{
  [OperationContract]
  string SomeServiceMethod(string someInput);
}
string result = MyService.SomeServiceMethod("Hello!");
但您不应该编写返回HTML标记或任何其他系统特定信息的WCF服务


由于WCF是一个基于消息的系统,WCF服务与您的ASP页面完全没有连接-它无法参与ASP生命周期或访问“响应”对象或类似的内容

实际上,WCF服务可以返回任何类型的数据。这涵盖了基本的基本类型,如
int
string
,但您也可以创建更高级的复合类型(类)并将它们发送回

然而:WCF并不是为了返回HTML标记而设计的——这将是一种完全错误的方法。WCF是一种服务—服务提供一些功能,您可以发送一些数据/参数,返回一些数据/输出类型

WCF不应该也决不能关心用户端数据的实际表示(这是用户界面的工作)、ASP页面或您正在处理的任何内容

因此,您可以使用如下WCF服务:

[ServiceContract]
interface IMyService
{
  [OperationContract]
  string SomeServiceMethod(string someInput);
}
string result = MyService.SomeServiceMethod("Hello!");
然后从客户机代码中调用它,如下所示:

[ServiceContract]
interface IMyService
{
  [OperationContract]
  string SomeServiceMethod(string someInput);
}
string result = MyService.SomeServiceMethod("Hello!");
但您不应该编写返回HTML标记或任何其他系统特定信息的WCF服务


由于WCF是一个基于消息的系统,WCF服务与您的ASP页面完全没有连接-它无法参与ASP生命周期或访问“响应”对象或类似的内容

马克,你完全正确。对于这样的事情,使用WCF可能是不明智的。我不控制发布到我的服务的ASP表单,它位于客户的服务器上,我无法更改它。客户正在寻找SUCCESS这个词,否则它会认为调用我的服务失败。。我可以使用ASP页面来接受呼叫,但我想使用WCF来执行。@anon2009:您完全可以从WCF服务返回一个字符串,并将其设为“成功”以表示成功完成。它不起作用。也许这与我正在使用REST有关。[OperationContract][WebInvoke(Method=“POST”,BodyStyle=WebMessageBodyStyle.Bare,UriTemplate=“/Upload”)]字符串GetLogFile(流日志文件);实际上这样做是可行的:ebOperationContext.Current.OutgoingResponse.ContentType=“text/xml”;WebOperationContext.Current.OutgoingResponse.StatusDescription=“成功”;返回“成功”;马克,你完全正确。对于这样的事情,使用WCF可能是不明智的。我不控制发布到我的服务的ASP表单,它位于客户的服务器上,我无法更改它。客户正在寻找SUCCESS这个词,否则它会认为调用我的服务失败。。我可以使用ASP页面来接受呼叫,但我想使用WCF来执行。@anon2009:您完全可以从WCF服务返回一个字符串,并将其设为“成功”以表示成功完成。它不起作用。也许这与我正在使用REST有关。[OperationContract][WebInvoke(Method=“POST”,BodyStyle=WebMessageBodyStyle.Bare,UriTemplate=“/Upload”)]字符串GetLogFile(流日志文件);实际上这样做是可行的:ebOperationContext.Current.OutgoingResponse.ContentType=“text/xml”;WebOperationContext.Current.OutgoingResponse.StatusDescription=“成功”;返回“成功”;