com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve

第一种:服务端和客户端的 defaultZone地址不一样导致的。 

        解决:如果服务端设置安全认证了 ,客户端也要加上用户名和密码,

server:

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve_第1张图片

click:

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve_第2张图片

第二种:服务端没有禁用自己的注册行为

       说明:在默认下,Eureka服务注册中心也会将自己作为客户端来尝试注册,所以我们要禁用它的客户端注册行为。

       解决:在application.yml配置文件中增加以下内容

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve_第3张图片


第三种: 开启认证了,但是没有禁用CSRF

    新版本的spring-cloud2.0中: Spring Security默认开启了CSRF攻击防御

   CSRF会将微服务的注册也给过滤了,虽然不会影响注册中心,但是其他客户端是注册不了的。

   解决:

@Configuration
public class WebSecurityConfig {

    @EnableWebSecurity
    public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().authenticated().and().httpBasic().and().csrf().disable();
        }
    }
}

 

 

 

你可能感兴趣的:(Exception,Spring,Cloud,EureKa)