.net core中的WCF如何改写为支持长尾词的微服务架构?

2026-03-30 15:011阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计441个文字,预计阅读时间需要2分钟。

.net core中的WCF如何改写为支持长尾词的微服务架构?

.NET Core 下迎来了 WCF —— CoreWCF 1.0,制作了一个基础的 Demo。首先在 NuGet 中引入了两个包:CoreWCF.Http 和 CoreWCF.Primitives。本 demo 使用 WCF 实现了一个 ToDoList 的几个服务端方法,然后创建了一个客户端。

  .net core下迎来了WCF——CoreWCF1.0,做了一个最初级的Demo,尝尝鲜。

  首先在NuGet中引入下面两个包

CoreWCF.Http

CoreWCF.Primitives

.net core中的WCF如何改写为支持长尾词的微服务架构?

  本demo是用WCF实现一个ToDoList的几个服务端方法,然后用创建客户端服务调用,代码如下:

WCF服务配置文件

{
"Urls": "localhost:5000;localhost:5001",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

WCF服务代码:

using CoreWCF;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;
using CoreWCF.Configuration;
using CoreWCF.Description;

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.AllowSynchronousIO = true;
});

builder.Services.AddServiceModelServices().AddServiceModelMetadata();
builder.Services.AddSingleton<IServiceBehavior, UseRequestHeadersForMetadataAddressBehavior>();

var app = builder.Build();
app.UseServiceModel(builder =>
{
builder
.AddService(typeof(ToDoService))
.AddServiceEndpoint<ToDoService, IToDoService>(new BasicHttpBinding(), "/ToDoService/basiclocalhost:5001/ToDoService/WSHttps");

while (true)
{
Console.WriteLine("1、Add ToDo 2、Get ToDoList 3、Remove ToDo");
switch (Console.ReadLine())
{
case "1":
var addResult = await client.AddAsync(new AddRequest
{
item = new Item { Title = "title_" + DateTime.Now.ToString("yyyyMMddHHmmss"), Description = "description_" + DateTime.Now.ToString("yyyyMMddHHmmssffffff") }
});
Console.WriteLine(addResult.AddResult);
break;
case "2":
var listResult = await client.GetListAsync(new GetListRequest { });
foreach (var item in listResult.GetListResult)
{
Console.WriteLine(item);
}
break;
case "3":
var delResult = await client.RemoveAsync(new RemoveRequest
{
title = Console.ReadLine()
});
Console.WriteLine(delResult.RemoveResult);
break;
default:
Console.WriteLine("input error");
break;
}
}

结果:

  想要更快更方便的了解相关知识,可以关注微信公众号

标签:WCFNETCore

本文共计441个文字,预计阅读时间需要2分钟。

.net core中的WCF如何改写为支持长尾词的微服务架构?

.NET Core 下迎来了 WCF —— CoreWCF 1.0,制作了一个基础的 Demo。首先在 NuGet 中引入了两个包:CoreWCF.Http 和 CoreWCF.Primitives。本 demo 使用 WCF 实现了一个 ToDoList 的几个服务端方法,然后创建了一个客户端。

  .net core下迎来了WCF——CoreWCF1.0,做了一个最初级的Demo,尝尝鲜。

  首先在NuGet中引入下面两个包

CoreWCF.Http

CoreWCF.Primitives

.net core中的WCF如何改写为支持长尾词的微服务架构?

  本demo是用WCF实现一个ToDoList的几个服务端方法,然后用创建客户端服务调用,代码如下:

WCF服务配置文件

{
"Urls": "localhost:5000;localhost:5001",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

WCF服务代码:

using CoreWCF;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.Serialization;
using CoreWCF.Configuration;
using CoreWCF.Description;

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel((context, options) =>
{
options.AllowSynchronousIO = true;
});

builder.Services.AddServiceModelServices().AddServiceModelMetadata();
builder.Services.AddSingleton<IServiceBehavior, UseRequestHeadersForMetadataAddressBehavior>();

var app = builder.Build();
app.UseServiceModel(builder =>
{
builder
.AddService(typeof(ToDoService))
.AddServiceEndpoint<ToDoService, IToDoService>(new BasicHttpBinding(), "/ToDoService/basiclocalhost:5001/ToDoService/WSHttps");

while (true)
{
Console.WriteLine("1、Add ToDo 2、Get ToDoList 3、Remove ToDo");
switch (Console.ReadLine())
{
case "1":
var addResult = await client.AddAsync(new AddRequest
{
item = new Item { Title = "title_" + DateTime.Now.ToString("yyyyMMddHHmmss"), Description = "description_" + DateTime.Now.ToString("yyyyMMddHHmmssffffff") }
});
Console.WriteLine(addResult.AddResult);
break;
case "2":
var listResult = await client.GetListAsync(new GetListRequest { });
foreach (var item in listResult.GetListResult)
{
Console.WriteLine(item);
}
break;
case "3":
var delResult = await client.RemoveAsync(new RemoveRequest
{
title = Console.ReadLine()
});
Console.WriteLine(delResult.RemoveResult);
break;
default:
Console.WriteLine("input error");
break;
}
}

结果:

  想要更快更方便的了解相关知识,可以关注微信公众号

标签:WCFNETCore