首先得先了解并熟悉一下springcloud,并手动去搭建一个服务中心,也可参照eurake官方示例
如果是.net core的话,实现注册也是没有问题的,网上教程很多,可自行度娘。
最难的就是基于Framework的项目怎么实现注册,跟core的实现方式区别还是蛮大的,研究过程中也有不少坑。
下面就分享一下我踩完坑之后初步总结的实现步骤:
1.用VS2017或者其他创建NF4.5+的webAPI项目(webAPI的结构基本是保持MVC一致的,所以MVC项目基本也能按这个步骤来的)
2.在项目根目录内新建文件appsettings.json(这个文件主要是配置服务中心eurke地址等信息的):
{
"spring": {
"application": {
"name": "demoService"
}
},
"eureka": {
"client": {
"serviceUrl": "http://localhost:8761/eureka/",//服务中心地址
"shouldFetchRegistry": false,
"shouldRegisterWithEureka": true,//是否允许注册到服务中心 "validate_certificates": false
},
"instance": {
"port": }
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"Pivotal": "Debug",
"Steeltoe": "Debug"
}
}
}
 
3.在项目文件夹App_Start下创建ApplicationConfig.cs:
 

public static class ApplicationConfig
{

public static IConfigurationRoot Configuration { get; set; }

public static void RegisterConfig(string environment)
{ // Set up configuration sources.
var builder = new ConfigurationBuilder()
.SetBasePath(GetContentRoot())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false)
.AddJsonFile($"appsettings.{environment}.json", optional: true)
.AddCloudFoundry()
.AddEnvironmentVariables();

Configuration = builder.Build();
}

public static string GetContentRoot()
{
var basePath = (string)AppDomain.CurrentDomain.GetData("APP_CONTEXT_BASE_DIRECTORY") ??
AppDomain.CurrentDomain.BaseDirectory;
return Path.GetFullPath(basePath);
}
}
 
注意这里需要添加的引用:
using Microsoft.Extensions.Configuration;
using Steeltoe.Extensions.Configuration.CloudFoundry;
这两个是需要在引用点右键选择NuGet程序包里添加的。
 
4.修改Global.asax文件,在Application_Start()内加入代码:
GlobalConfiguration.Configure(WebApiConfig.Register);

var config = GlobalConfiguration.Configuration;

// Build application configuration
ApplicationConfig.RegisterConfig("development");

var builder = new ContainerBuilder();

// Add Microsoft Options to container
builder.RegisterOptions();

// Add Microsoft Logging to container
builder.RegisterLogging(ApplicationConfig.Configuration);

// Add Console logger to container
builder.RegisterConsoleLogging();

// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

// Register IDiscoveryClient, etc.
builder.RegisterDiscoveryClient(ApplicationConfig.Configuration);

// Initialize and Register FortuneContext
builder.RegisterInstance(SampleData.InitializeFortunes()).SingleInstance();

// Register FortuneRepository
builder.RegisterType<FortuneRepository>().As<IFortuneRepository>().SingleInstance();

var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);

// Get a logger from container
var logger = container.Resolve <ILogger<WebApiApplication>>();

logger.LogInformation("Finished container build, starting background services");

// Start the Discovery client background thread
container.StartDiscoveryClient();

logger.LogInformation("Finished starting background services");
添加引用:
using Autofac;
using Autofac.Integration.WebApi;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
using Pivotal.Discovery.Client;
using Steeltoe.Common.Discovery;
using Steeltoe.Common.Logging.Autofac;
using Steeltoe.Common.Options.Autofac;
using System;
using System.Diagnostics;
using System.Reflection;
using System.Web.Http;
 
 
 

.net framework 4.5 +steeltoe+ springcloud 实现服务注册功能的更多相关文章

  1. SpringCloud+Consul 服务注册与服务发现

    SpringCloud+Consul 服务注册与服务发现 1. 服务注册: 在Spring.factories有一段: # Discovery Client Configuration org.spr ...

  2. SpringCloud之服务注册-eureka

    类似于DUBBO 的zookeeper, SpringCloud本身提供一套服务注册中心--eureka 与zookeeper的区别在于 1:zookeeper本身就是一个应用,安装即可用:eurek ...

  3. SpringCloud - 2. 服务注册 和 发现

    SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency> <groupId>org.spring ...

  4. 将SpringCloud Eureka 服务注册与发现部署到docker

    一.前言 最近在学习docker,顺便把之前学习的spring cloud 部署到Docker 中.至于什么是SpringCloud的服务注册与发现,什么是docker,我这里就不作赘述了.可以先去学 ...

  5. .net framework 4.5 +steeltoe+ springcloud(二) 实现服务发现与调用功能

    首先,写一个简单的可被调用的服务注册到服务中心,我们这命名为java-service,用的是IDEA创建一个spring boot项目,选择spring client类型. 修改application ...

  6. 微服务SpringCloud之服务注册与发现

    在找.net core 微服务框架时发现了Steeltoe开源项目,它可以基于Spring Cloud实现.net core和.net  Framework的微服务.正好之前也有学习过SpringBo ...

  7. springcloud(第三篇)springcloud eureka 服务注册与发现 *****

    http://blog.csdn.net/liaokailin/article/details/51314001 ******************************************* ...

  8. springcloud之服务注册与发现(Eureka)

    springcloud服务注册与发现 使用Eureka实现服务治理 作用:实现服务治理(服务注册与发现) 简介: Spring Cloud Eureka是Spring Cloud Netflix项目下 ...

  9. springcloud之服务注册与发现(zookeeper注册中心)-Finchley.SR2版

    新年第一篇博文,接着和大家分享springcloud相关内容:本次主要内容是使用cloud结合zookeeper作为注册中心来搭建服务调用,前面几篇文章有涉及到另外的eureka作为注册中心,有兴趣的 ...

随机推荐

  1. 【HTTP协议】---TCP三次握手和四次挥手

    TCP三次握手和四次挥手 首先我们知道HTTP协议通常承载于TCP协议之上,HTTPS承载于TLS或SSL协议层之上 通过上面这张图我们能够知道.     在Http工作之前,Web浏览器通过网络和W ...

  2. WordUtil java导出word工具类

    import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedWriter ...

  3. 项目构建工具Maven

  4. js中的各种“位置”——“top、clientTop、scrollTop、offsetTop……”,你知道多少

    当要做一些与位置相关的插件或效果的时候,像top.clientTop.scrollTop.offsetTop.scrollHeight.clientHeight.offsetParent...看到这么 ...

  5. java库中的具体的集合

    1.ArrayList  一种可以动态增长和缩减的索引序列:速度较慢适合用于不修改太多的元素    采用的数组 2.LinkEdList  一种可以在任何位置进行高效的插入和删除操作的有序序列,适合于 ...

  6. Mysql内置的profiling性能分析工具

    要想优化一条 Query,我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里,是消耗的 CPU计算太多,还是需要的的 IO 操作太多?要想能够清楚的了解这些信息,在 MySQL 5.0 和 M ...

  7. 震撼功能:逐浪CMS全面支持PWA移动生成意指未来

    Progressive Web App, 简称 PWA,是提升 Web App 的体验的一种新方法,能给用户原生应用的体验. PWA 能做到原生应用的体验不是靠特指某一项技术,而是经过应用一些新技术进 ...

  8. 历届试题 剪格子 IDA*

    思路:限制当前能剪下的最大格子数,保证能得到最少数目.IDA*的典型运用. AC代码 #include <cstdio> #include <cmath> #include & ...

  9. effective C++笔记-2

    6:析构函数使用 1.如果一个基类是为了多态用途,那么就应该有一个虚析构函数. 2.如果一个类中有虚函数,那么就应该就有一个虚的析构函数. 3.如果一个基类中不是为了多态的用途,或者不作为基类来使用, ...

  10. Java中子类能继承父类的私有属性吗?

    前段时间去听老师讲课的时候,老师告诉我子类是可以继承父类所有的属性和方法的.当时我是极其疑惑的,因为之前学校考试时这个考点我记得很清楚:子类只能继承父类的非私有属性和方法.老师给我的解释是这样的--先 ...