gpt4 book ai didi

amazon-web-services - 无法访问 Owin 自托管 RestApi - 部署到 AWS EC2 - Windows 2012 R2

转载 作者:行者123 更新时间:2023-12-01 06:23:16 24 4
gpt4 key购买 nike

以下是我使用 OWIN 创建的示例自托管 RestApi 代码。
它在我的本地机器上工作。

我已将其托管在 aws-ec2 中,并以管理员身份启动。

我可以从实例内部访问 RestApi(使用 chrome/IE),将 localhost 作为 url。

Access inside Instan

但是,当我用实例的公共(public) DNS 替换本地主机(在实例的浏览器中运行)时,得到一个错误的请求无效的主机名。

Instance DNS name

当我尝试从本地机器(浏览器/ postman )的实例浏览器外部访问 RestApi 时,它返回状态 0。

Accessing from outside

复制下面的代码。

class Program {
static void Main(string[] args) {
const string BaseUri = "http://localhost:65435";
Console.WriteLine("Starting web Server...");
WebApp.Start<Startup>(BaseUri);
...
}
}

public class Startup {
public void Configuration(IAppBuilder app) {
var webApiConfiguration = ConfigureWebApi();
app.UseWebApi(webApiConfiguration);
}

private HttpConfiguration ConfigureWebApi() {
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });
return config;
}
}

public class CompaniesController : ApiController {
public IEnumerable<Company> Get() {
return new List<Company>(){
new Company() { Id = 1, Name = "Microsoft" },
new Company() { Id = 2, Name = "Amazon" }
};
}
}

我创建了一个 Windows 2012 R2 - AWS EC2 实例。

配置实例:
  • 允许所有入站和出站流量。
  • 打开所有端口。
  • 我已禁用 Windows 防火墙
  • 我试图从我的本地机器 cmd ping DNS 名称,它是成功的。
  • WebApi 正在使用,端口号 - 65435(临时端口)
  • Owin 版本 - 5.2.3.0,.Net 版本 - 4.5(EC2 实例上安装了 4.5.2)
  • 将代码中的“localhost”更改为 public-dns(同样的问题仍然存在)和 ip-address(抛出异常 - “调用的目标已抛出异常。”)

  • Inbound Rule

    Outbound Rule

    请帮我配置这个。!!

    最佳答案

    您正在启动 WebApp在本地主机上:
    http://localhost:65435
    它在环回适配器上启动,而不是在您尝试从外部访问的实际以太网适配器上启动。您需要使用服务器的 ip 启动它。

    关于amazon-web-services - 无法访问 Owin 自托管 RestApi - 部署到 AWS EC2 - Windows 2012 R2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31302499/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com