标签: endpoint

直接访问Azure工作人员; 绕过负载均衡器

通常,对Azure工作人员的访问是通过服务定义中定义的端点完成的.这些端点(必须是TCP或HTTP(S))通过负载平衡器传递,然后连接到Azure计算机的实际IP /端口.

我的应用程序将从UDP的使用中受益匪浅,因为我从蜂窝设备连接,其中字节计数用于计费,而SYN/ACK/FIN的开销使我发送的8字节数据包相形见绌.我甚至考虑将我的数据直接放入ICMP消息头.但是,负载均衡器不支持这一点.

我知道你可以在Azure虚拟机上启用ping然后ping它们 - http://weblogs.thinktecture.com/cweyer/2010/12/enabling-ping-aka-icmp-on-windows-azure-roles.html.

有什么阻止我使用基于TCP的服务(通过负载均衡器公开),只是分发Azure VM地址的IP地址和端口,然后让应用程序直接与该工作者通信?(我必须自己处理负载平衡.)如果工作人员关闭或移动,我的应用程序将足够聪明,可以重新连接到TCP端点并要求新的位置来发送数据.

这个概念是否有效,或者是否有某些东西可以阻止这种直接访问?

load-balancing azure endpoint

9
推荐指数
1
解决办法
2503
查看次数

wcf端点相对地址

我只是在学习wcf并且无法理解一个非常基本的东西.

我正在创建一个WCF服务,我想在IIS中托管,就像Web应用程序一样,它有自己的路径http://myhost/myapp/和所有东西.

我正在VS中创建WCF服务项目,我有一个*.svc描述它的文件,然后我像这样定义一个简单的端点:

<endpoint address="" 
          binding="basicHttpBinding" 
          contract="wcf_service_auth.IPshService" />
Run Code Online (Sandbox Code Playgroud)

然后我将这个服务像IIS Web应用程序一样发布到虚拟目录,我们假设它的名称psh_pub,所以我可以通过url访问该服务http://localhost/psh_pub/pshservice.svc/.它向我展示了WCF问候页面并给了我一个WSDL链接,它给了我正确的wsdl描述.

没关系.

下一步 - 我想添加一个MEX端点.我添加到配置:

<endpoint address="mex" 
          binding="mexHttpBinding" 
          contract="IMetadataExchange"/>
Run Code Online (Sandbox Code Playgroud)

也没关系,端点可以在地址访问,http://localhost/psh_pub/pshservice.svc/mexWcfTestClient.exe从该URL提供正确的配置.

问题来了.

我有一个在IIS下工作的WCF服务,我想再添加一个端点.例如,让它成为一个net.tcp端点.IIS默认配置为接受net.tcp端口808的连接,我正在net.tcp为我的Web应用程序的属性添加协议,我想将端点添加到我的服务中:

<endpoint address=""
          binding="netTcpBinding" 
          contract="wcf_service_auth.IPshService"  />
Run Code Online (Sandbox Code Playgroud)

现在我假设我的服务应该可以通过网址访问net.tcp://localhost:808/psh_pub/pshservice.svc.但事实并非如此.网上的每个"操作方法"和手册都告诉我应该在配置文件中指定完整地址,如下所示:

<endpoint address="net.tcp://localhost:808/psh_pub/pshservice.svc" 
          binding="netTcpBinding" 
          contract="wcf_service_auth.IPshService" />
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它的确有效.但是如果将服务托管在另一个虚拟目录中,我将需要更改配置.如果我在另一台服务器上托管它,我需要更改配置.如果我在多台服务器上托管它,我将必须维护与我拥有的服务器一样多的配置.

所以主要问题是:

是否有任何方法在WCF中指定net.tcpIIS托管的WCF服务的(或https)端点而不指定它的绝对URL?

wcf endpoint

9
推荐指数
1
解决办法
2万
查看次数

jsplumb.connect()使用现有端点而不是创建新端点

我有一个jsPlumb.connect函数的问题.我有一个应用程序,用户可以添加<div>元素,获取jsPlumb端点.用户可以将所有这些元素相互连接起来.该图表可以保存在MySQL数据库中(采用JSON格式).

当用户从数据库加载图表时,我可以使用我的addElement和addEndpoint函数重新创建元素和端点.但是当我调用jsPlumb Connect方法(只是从数据库创建图表时调用)时,为了绘制连接线,它为每个连接元素创建一个新的enpoint

所以我的问题是,每次调用connect方法时如何防止创建新的端点?

jquery connect endpoint jsplumb

9
推荐指数
1
解决办法
5865
查看次数

如何批量添加Azure端点?

我在Azure上运行了一个FTP服务器.我不得不为"数据"连接手动添加20个端点.

这很痛苦.

为什么这么难!

当然,以某种方式将端点批量添加到Azure VM有更好的方法吗?如果是这样,有人可以列出一些指示吗?我对任何事都持开放态度.

例如.我很想创造

TCP public port 61020 - private port 61020

TCP public port 61100 - private port 61100

嗯....

tcp azure endpoint azure-virtual-machine

9
推荐指数
1
解决办法
2797
查看次数

如何使用 Supertest 对文件上传进行单元测试并发送令牌?

如何使用正在发送的令牌测试文件上传?我返回“0”而不是确认上传。

这是一个失败的测试:

var chai = require('chai');
var expect = chai.expect;
var config = require("../config");  // contains call to supertest and token info

  describe('Upload Endpoint', function (){

    it('Attach photos - should return 200 response & accepted text', function (done){
        this.timeout(15000);
        setTimeout(done, 15000);
        config.api.post('/customer/upload')
              .set('Accept', 'application.json')
              .send({"token": config.token})
              .field('vehicle_vin', "randomVIN")
              .attach('file', '/Users/moi/Desktop/unit_test_extravaganza/hardwork.jpg')

              .end(function(err, res) {
                   expect(res.body.ok).to.equal(true);
                   expect(res.body.result[0].web_link).to.exist;
               done();
           });
    });
});
Run Code Online (Sandbox Code Playgroud)

这是一个工作测试:

describe('Upload Endpoint - FL token ', function (){
   this.timeout(15000);
    it('Press Send w/out attaching photos returns error message', function (done){
    config.api.post('/customer/upload') …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js endpoint chai supertest

9
推荐指数
2
解决办法
1万
查看次数

通过 Azure DevOps 使用专用终结点部署应用服务

当我使用专用终结点运行 Azure 应用程序服务的发布管道时,发生以下错误错误:无法获取 Kudu 应用程序设置。错误:IP 被禁止(代码:403)

有什么建议吗?

azure endpoint azure-appservice

9
推荐指数
2
解决办法
2万
查看次数

如何在Java应用程序中有选择地停用REST端点?

我正在开发一个由多个后端服务和前端客户端组成的应用程序.整个应用程序是用Java编写的,我们使用Apache TomEE webserver来运行它.

后端服务公开了几个API,并包含多个控制器.其中一些API可供前端客户端访问,一些API用于后端服务之间的内部通信.

记录对于此应用程序非常重要.要求在开始正常操作之前始终初始化日志记录系统(以确保完全可追溯性).该应用程序使用安全日志记录系统,该系统需要密钥来初始化日志记录(使用此密钥对日志进行签名以防止篡改日志).还需要将日志记录密钥上载到每个服务.每个后端服务都有一个端点,用于接收日志密钥.

存在"鸡或蛋"类型的问题.应用程序需要运行才能接收密钥,但在收到密钥之前,应用程序也不应完全正常运行.

为了满足这些要求,我们正在考虑以下启动程序:

  1. 以简化操作模式启动后端服务,其中每个服务中唯一可访问的端点是用于接收传入密钥的端点.
  2. 一旦接收到密钥,并且日志系统初始化,则激活其他端点,并开始正常操作.

是否有一种激活端点的标准方法来促进此启动过程?或者无论如何控制对端点的访问.

一些额外的信息:应用程序中的控制器类不扩展任何其他类,并且仅使用@Path@Stateless注释进行修饰.


更新1

我按照使用过滤器的方法(如下面的Bogdan所建议的).我创建了一个捕获所有请求的过滤器.应用程序正确启动.init()调用过滤器类中的方法.但是当我访问/installkey端点时会发生错误.

似乎发生的是doFilter(ServletRequest, ServletResponse, FilterChain)调用该方法,并且我的代码检测到请求是针对/installkey端点的.但是电话错误来自:filterChain.doFilter(request, response);.

我已经检查过,而且我知道变量filterChain不是null,但是在方法中doFilter(ServletRequest, ServletResponse, FilterChain)出了问题,我无法调试它.

可能,我没有初始化需要初始化的东西.

我添加了下面的输出.

现在我有以下内容web.xml:

<filter>
    <filter-name>myFilter</filter-name>
    <filter-class>com.company.filter.LoggingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>myFilter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)

以下课程:

public class LoggingFilter implements Filter {

    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(final ServletRequest request, 
                         final ServletResponse response, 
                         final FilterChain …
Run Code Online (Sandbox Code Playgroud)

rest endpoint java-ee tomee

8
推荐指数
2
解决办法
4365
查看次数

在 Kestrel 上为 ASP.NET Core 上的两个不同端点发布两个不同的端点

我有一个有两个端点的 ASP.NET Core 应用程序。一个是MVC,另一个是Grpc。我需要 kestrel 在不同的套接字上发布每个端点。示例:localhost:8888 (MVC) 和 localhost:8889 (Grpc)。

我知道如何在 Kestrel 上发布两个端点。但问题是它在两个端点上都发布了 MVC 和 gRPC,我不想要那样。这是因为我需要 Grpc 请求使用 Http2。另一方面,我需要 MVC 请求使用 Http1

在我的 Statup.cs 上我有

public void Configure(IApplicationBuilder app)
{
    // ....
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGrpcService<ComunicacaoService>();
        endpoints.MapControllerRoute("default",
                                      "{controller}/{action=Index}/{id?}");
    });
    // ...
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来endpoints.MapGrpcService<ComunicacaoService>();在一个套接字上和endpoints.MapControllerRoute("default","{controller}/{action=Index}/{id?}");另一个套接字上发布。

c# asp.net-mvc endpoint grpc kestrel-http-server

8
推荐指数
1
解决办法
2041
查看次数

具有本机@WebService支持的可嵌入Web服务器,作为Endpoint.publish的替代方案

我花了一些时间来调查Endpoint.publish可以做什么和不能做什么,看起来你很快就进入了无证领域.

如果您构建一个简单的独立应用程序,它使用Endpoint.publish公开一个或多个@WebService注释类,然后您遇到无法再使用Endpoint.publish的情况(出于任何原因)什么是最简单的迁移路径?

我知道您可以使用sun-jaxws.xml和可选的Metro jar创建一个WAR,然后可以将其部署到嵌入式Web服务器(如Jetty或Winstone),但我喜欢简单的"拿这个类并在这个URL上公开它" Endpoint.publish()的API,没有任何XML或完整容器.

有没有办法做到这一点?

java web-services endpoint

7
推荐指数
1
解决办法
578
查看次数

无法连接到本地 DynamoDB

我无法连接到使用 cli 本地运行的 DynamoDB。

aws dynamodb list-tables --endpoint-url http://localhost:8000

无法连接到端点 URL:“http://localhost:8000/”

这也不起作用: aws dynamodb list-tables --region local 无法连接到端点 URL:“http://localhost:8000/”

我尝试使用不同的端口,但没有帮助。我也禁用了所有代理。我可以使用这样的应用程序连接到 DynamoDB,所以我知道这不是 dynamodb 问题: aws dynamodb list-tables --endpoint-url http://dynamodb.us-west-2.amazonaws.com --region us-west-2

{“表名”:[“音乐”]}

java endpoint amazon-web-services amazon-dynamodb amazon-dynamodb-local

7
推荐指数
1
解决办法
2996
查看次数