用剃须刀从.asmx升级到WCF

时间:2015-12-07 20:46:58

标签: c# .net web-services wcf razor

所以我一直在使用.asmx文件调用来自Razor的c#类的方法,并且我已经了解到.asmx已被弃用。我试图找出用这个方法替换的方法。这就是我现在正在做的事情:

C#程序(GetConstantContactData.cs)如下所示:

delimiter //

CREATE TRIGGER trigger_pagina
    BEFORE INSERT ON pagina
    FOR EACH ROW
    BEGIN  -- Add a BEGIN here...
        BEGIN
            IF (EXISTS(
              ...
            END IF;
        END;
        BEGIN
          ...
        END;
    END; -- and an END here
    //
delimiter ;

.asmx文件(GetConstantContactData.asmx)如下所示:

using System.Net;
using System.IO;
using System.Runtime.Serialization.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;




/// <summary>
/// Summary description for GetConstantContactData
/// </summary>
[WebService(Namespace = "https://[myurl].org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class GetConstantContactData : System.Web.Services.WebService {


 public string GetResponse()
    {
      //Get data from Constant Contact and return it as a JSON string
    }

Javascript ajax像这样调用.asmx文件:

<%@ WebService Language="C#" CodeBehind="~/App_Code/GetConstantContactData.cs" Class="GetConstantContactData" %>

它现在有效,但正如我所说,我知道这种方法已被弃用,并且在.NET 4中不起作用。据我了解,我想通过WCF使用ServiceHost来实现。我看到如何使用ScriptManager here执行此操作,但我想知道如何使用Razor执行此操作。

我一直在网上搜索任何类型的教程或指南。只是链接到正确的地方告诉我如何做到这一点将是伟大的。谢谢。

1 个答案:

答案 0 :(得分:0)

Brent Mannering对上述WebAPI端点的建议是解决这个问题的最佳方法。它没有使用WCF,但Web API是一个更有用的轻量级解决方案,与我最初使用.asmx Webservice框架进行匹配,并且不被弃用。