【问题标题】:Issue in consuming a asmx web method使用 asmx web 方法的问题
【发布时间】:2017-05-01 19:37:25
【问题描述】:

我正在创建一个简单的 asmx Web 服务并尝试使用它们。下面是 asmx 网络服务

public class AddTwoNumbers : System.Web.Services.WebService
{

    [WebMethod]
    public int GetSum(int a, int b)
    {
        return  a + b;
    }
}

这是我正在使用创建的服务的 Windows 控制台应用程序

 namespace TestASMXService
 {
 class Program
 {
    static void Main(string[] args)
    {
        AddingNumber.AddTwoNumbers add = new AddingNumber.AddTwoNumbers();
        Console.Write("First Number:");
        int firstNum = Convert.ToInt32(Console.ReadLine());
        Console.Write("Second Number:");
        int secNum = Convert.ToInt32(Console.ReadLine());
        Console.Write ("The Sum is:",add.GetSum(firstNum, secNum));
        Console.ReadLine();
    }
}

它接收用户输入,不返回任何结果或抛出任何错误

谁能告诉我这里缺少什么。

【问题讨论】:

  • 出于好奇,为什么选择 ASMX?
  • 我只是在学习 asmx。并尝试了解如何使用网络方法
  • ASMX 已被弃用,如果不是过时的话 - 如果您想了解 Web 服务,我建议您使用 ASP.NET Web API。 ASMX 不应该用于新项目,因为它不受 ASP.NET Core 支持:stackoverflow.com/a/35830341/159145
  • 是的,我已经在 Web API 中完成了一些学习练习。但是你能说一下上面的代码有什么问题吗
  • 我无法立即看到任何错误 - 我怀疑这是运行时配置问题。您确定 ASMX 服务正在运行并且可以访问吗?如果您的代理类是由 Visual Studio 生成的,您应该能够介入 GetSum 调用并查看它在哪里阻塞 - 我怀疑它在获取响应时会阻塞。您是否正在运行任何阻止本地环回连接的防火墙软件?

标签: c# web-services console-application asmx


【解决方案1】:

您正试图在 Console.Write 中传递一个参数,但在格式字符串中没有占位符。因此不会调用 GetSum 方法。

改成:

Console.Write("The Sum is: {0}", add.GetSum(firstNum, secNum));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2013-08-24
    • 2011-04-05
    • 2011-03-05
    相关资源
    最近更新 更多