0

我有一个带有一些页面内 Web 服务方法的 asp.net Web 应用程序。它不是 asmx 页面,只是 Default.aspx。例如:

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

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

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

4

2 回答 2

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
    }
}

有关从 C# 控制台应用程序使用 ASP.NET Web API 服务的教程,请阅读从 .NET 客户端调用 Web API 。

于 2013-11-06T21:25:03.620 回答
0

您不能从页面外部使用该页面方法。为此,您需要单独的服务。

您应该执行以下操作:

  1. 创建一个单独的 WCF 服务项目来保存新服务
  2. 将页面方法的内容提取到新服务项目中的类似服务方法中
  3. 测试新服务并使其工作
  4. 在您的 ASP.NET 项目中,使用“添加服务引用”以允许您引用新服务
  5. 从页面方法内部调用新服务
于 2013-11-06T20:42:30.600 回答