使用wcf而不是Web服务!

时间:2011-01-12 18:36:01

标签: c# asp.net ajax wcf web-services

我在我的网站上使用ajax从UserControl中调用一些名为NewsFeed.ascx的信息,该文件位于'controls'文件夹中,我的方法是创建一个 Web服务页面(在一个名为WebMethods的文件夹中),其中包含一个名为 GetRSSReader 的函数,它返回一个字符串格式:

    [WebMethod]
public string GetRSSReader()
{
    Page page = new Page();
    UserControl ctl =
      (UserControl)page.LoadControl("~/Controls/NewsFeed.ascx");

    page.Controls.Add(ctl);

    StringWriter writer = new StringWriter();
    HttpContext.Current.Server.Execute(page, writer, false);

    return writer.ToString();
}

然后我使用Jquery(我发现它太重了)来调用此页面以将返回的数据作为 JSON 获取,如下所示:

<div id="Content"></div>
<script type="text/javascript" defer="defer" src="../JAVA/Default.js"></script>
  

&GT;

$(document).ready(Update);

function Requests()
{
  $.ajax({
    type: "POST",
    url: "../WebMethods/Feed.asmx/GetRSSReader",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
      $('#Content').html(msg.d);
    }
  });
}

Jquery.js和此页面(default.js)建立在 Java

文件夹中

我的问题:我可以不使用webService而是使用WCF!以及如何!?

2 个答案:

答案 0 :(得分:1)

您所谓的“Web服务”是.NET的旧“ASMX Web服务”功能(有时称为ASP.NET Web服务)。

WCF是ASMX Web服务的替代品。

有关入门信息,请参阅https://stackoverflow.com/tags/wcf/info

答案 1 :(得分:0)

如果您刚刚返回JSON,那么我强烈建议您只使用HttpHandler而不是WCF,SOAP,UserControls以及其他任何其他内容的组合。 Here是关于这个主题的快速教程。您可以节省自己不需要的页面生命周期内容的开销。返回JSON就像使用JavaScriptSerializer序列化返回值一样简单。