起因
最近在一个Web老项目加新的需求,所以想把老项目迁移Asp.Net Core上,老项目调用的服务都是WebService.所以在.Net Core测试调用WebService.
1. 创建.Net Core控制台项目(这里在命令行中创建),没有选择VS
dotnet new console
2.添加dotnet-svcutil ,在csproj文件添加
<ItemGroup>
<DotNetCliToolReference Include="dotnet-svcutil" Version="1.0.*" />
</ItemGroup>
3.执行dotnet restore
dotnet restore
4. 使用命令生成代理类(在vs2019预览版一直没法生成)
dotnet svcutil http://localhost:53018/WebService1.asmx?wsdl
5. 调用WebService代码
using System;
using System.Threading.Tasks;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
TestMethod();
Console.ReadKey();
}
private static async Task TestMethod()
{
WebService1SoapClient webService1SoapClient = new WebService1SoapClient(WebService1SoapClient.EndpointConfiguration.WebService1Soap);
var x = await webService1SoapClient.HelloWorldAsync();
Console.WriteLine(x.Body.HelloWorldResult);
}
}
}
6. WebService代码
using System.Web.Services;
namespace qiufeng.webservice
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
结果
目前生成服务代理类,只支持异步调用.这个有点麻烦.改天继续研究,怎么集成到项目.