什么是最适合实现此功能的.NET Web技术?

时间:2010-09-13 14:09:13

标签: .net asp.net wcf web-services asp.net-mvc-2

我将与第三方接口 - 信息交换如下:

如果我的应用程序是客户端而第三方是服务器,那么:

  • 服务器到客户端:我给他们一个预定义的URL,他们用HTTP POST推送数据。 POST参数包含一个变量“xml”,请求采用专有的XML格式。
  • 客户端到服务器:这是以类似的方式完成的,这次我发起请求(与我猜的问题无关)

WCF可以实现吗?如果是这样,怎么样? 如果没有,ASP? MVC? 无论如何,请就具体步骤给出一些指示。

谢谢

编辑:给出的响应是HTTP 200以及专有的XML响应。通常,数据流将是:

服务器将请求推送到客户端服务=>生成响应(通常涉及请求服务器执行某些操作的客户端)=>使用响应XML

返回HTTP 200

5 个答案:

答案 0 :(得分:4)

我建议使用WCF REST服务。您可以将其设置为接受具有单个字符串参数的POST请求。然后该字符串将包含您的XML,您可以将其加载到XDocument或类似于解析XML的内容。

这看起来像这样:

[OperationContract]
[WebInvoke(Method="POST")]
public string AcceptRequest(string Xml)
{
  // Do something here
}

您没有真正指定您要对帖子做什么,或者您必须如何回复,因此根据这些要求,这可能不起作用。

Rick Strahl有一系列关于WCF REST服务的博客文章,您可以从这里开始:http://west-wind.com/weblog/posts/310747.aspx

答案 1 :(得分:1)

我会看一下WCF,但不知道你在做什么的详细细节,我可以告诉你。

Windows Communication Foundation(WCF)是为托管服务和客户端之间的通信而创建的,因此它应该完全符合您的要求。

此处提供更多信息MSDN WCF

答案 2 :(得分:1)

我真的很想知道你为什么要在2010年做老式的Web服务(自定义XML而不是自定义HTTP端点)。那就是说,我认为在这种情况下你可能想要:

a)Ye olde plain IHttpHandler接受原始输入并返回响应 b)ASP.NET MVC应用程序在专用控制器上执行相同操作。

决定真的会受到你需要使用这个应用程序部署的其他东西的驱动,但要么会起作用。 Kickers在这里是响应是同步的,域是相对集中的。

我认为你可以使用WCF实现这一目标,但这会增加如此多的配置复杂性,这可能是最简单的操作,最好避免使用。

答案 3 :(得分:0)

我不相信你可以用WCF做到这一点,虽然我不是WCF的专家...如果是我,我会创建一个ASP.Net ashx文件来接收数据然后创建一个aspx页面你可以使用WebClient进行文件上传/发送,或者沿着那些行进行。

答案 4 :(得分:0)

你在这里混合使用不同的技术。

当然你可以使用经典的asp.net,asp.net mvc和WCF这样做,但它引出了一个问题:你怎么需要运行它?特别是你发起的请求,当它启动时?

WCF专为通信场景而设计,因此它可能是您拥有的最灵活的选项。未提及的是响应您需要发起请求的人。

它可能是您向某人呈现的页面的一部分,在这种情况下,您还希望asp.net(mvc)启动该操作。可能需要将其作为服务运行,在这种情况下,您可以坚持使用仅限WCF的解决方案。可能需要从客户端应用程序启动,在这种情况下,您还需要该应用程序。

上面说过,如果你已经需要做asp.net(mvc)并且交换非常简单,你可以在不引入WCF的情况下完成。少学习。

最后,如果HTTP POST + xml不仅仅是一个自定义的东西,而是一个Web服务调用,您可能希望坚持使用WCF来接收请求。特别是它可能你需要其他WS部分,比如WS-Security。

相关问题