【问题标题】:using wcf instead of web service !使用 wcf 而不是 web 服务!
【发布时间】:2011-01-12 18:36:01
【问题描述】:

我在我的网站中使用 ajax 从名为 NewsFeed.ascx 的 UserControl 调用一些信息,该用户控件位于文件夹 '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>

>

$(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 吗?以及如何!?

【问题讨论】:

  • WCF IS 新的 Web 服务堆栈 - 所以您不是使用 WCF 而不是 Web 服务 - 而是使用 WCF IS 使用网络服务

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


【解决方案1】:

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

WCF 是 ASMX Web 服务的替代品。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-02-19
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多