使用.net核心使现有WCF服务在Linux上运行

时间:2016-07-24 14:36:38

标签: wcf asp.net-core asp.net-core-mvc .net-core

我对.net核心全新。

我的任务是在Linux上运行WCF服务。 我的WCF服务是使用.NET Framework 4构建的。 我在IIS中托管我的服务。

你能否为我提供正确的指导,处理以下问题,

  1. 我需要对当前的WCF服务进行哪些更改才能在Linux上运行?

  2. 我需要什么操作系统版本的Linux才能与.net核心一起使用?

  3. 目前,我在IIS中托管我的服务,如何在Linux中托管我的服务,因为我们有大约40项服务。

    我在互联网上找到的是在控制台应用程序中托管WCF服务,是否有更好的托管方式,因为我有40多项服务。

2 个答案:

答案 0 :(得分:4)

.Net Core 1.0不支持编写WCF服务器,只支持连接到它们的客户端。 The README of the WCF repository说:

  

仍应使用完整的.NET Framework版本创建WCF服务应用程序。

Microsoft正在考虑在未来添加对WCF服务器的支持,但目前尚无定论。 2016年7月16日起a post on the WCF repository

  

我们已经审核了上述有关.NET Core中WCF服务器支持的所有重要响应。

     

WCF功能团队正在积极研究未来.NET Core版本中WCF功能的路线图计划。对于后续步骤,我们需要您在顶级方案,功能使用和目标配置文件方面提供反馈。

然后链接到a survey

答案 1 :(得分:1)

我想这并不是你想要的,但你可能会发现它很有用 dotnetcorersi是基于TCP的解决方案,用于在dotnet核心框架中进行远程服务调用。

托管您的服务

    // Initialize new instance of RemoteServiceContainer
    var container = new RemoteServiceContainer();

    // Register MyCustomService as IMyCustomService 
    container.RegisterService(typeof(IMyCustomService), new MyCustomService());

    // Open connection 
    container.Open(serverIp, port);

在客户端初始化服务代理

    // Create instance of ServiceChannel
    var servicesChannel = new ServiceChannel(serverIp, port);

    // Generate remote service proxy
    var proxy = servicesChannel.GetRemoteService<IMyCustomService>();

使用您的服务

    // Do some work in the server context
    proxy.DoSomething();