从ASP.NET页面外部使用“页面方法”

时间:2013-11-06 20:36:05

标签: asp.net pagemethods

我有一个asp.net网络应用程序,其中包含一些页面Web服务方法。它不是asmx页面,只是Default.aspx。例如:

    [WebMethod]
    public static string SignUp(UserCredential userCredential)
    {
    }

使用在Default.aspx页面中嵌入的jquery,使用此Web服务没有任何问题。现在我想在控制台程序中使用这个Web方法。当我将web引用添加到控制台程序时,它说:HTML文档不包含Web服务发现信息。

如何在页面Web服务中使用它?

2 个答案:

答案 0 :(得分:1)

另一个选择是使用ASP.NET Web API创建服务方法,然后在控制台应用程序中使用它们,如下所示:

using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Headers;

class Program
{
    static void Main(string[] args)
    {
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://localhost:9000/");

        // Add an Accept header for JSON format.
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        // Call Web API methods here
    }
}

阅读Calling a Web API From a .NET Client以获取有关从C#控制台应用程序中使用ASP.NET Web API服务的教程。

答案 1 :(得分:0)

您无法从页面外部使用该页面方法。你需要一个单独的服务。

您应该执行以下操作:

  1. 创建一个单独的WCF服务项目来保存新服务
  2. 将您的页面方法的内容提取到新服务项目中的类似服务方法
  3. 测试新服务并使其正常工作
  4. 在您的ASP.NET项目中,使用"添加服务参考"允许您参考新服务
  5. 从页面方法
  6. 中调用新服务