You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 2 MVC仅HTTPS可访问,HTTP无法加载问题求助

解决.NET Core 2 API HTTP访问无响应问题

首先,咱们先拆解下你的问题:HTTPS访问正常,但HTTP一直加载无响应且日志无异常,这大概率是HTTP请求根本没到达你的API应用——要么是端点没配置,要么是IIS Express没开启HTTP监听。结合你要用iisexpress-proxy(仅支持HTTP)做手机测试的需求,咱们一步步来解决:

1. 检查项目启动配置(launchSettings.json)

打开项目根目录下的Properties/launchSettings.json,找到你的目标配置项(比如IIS Express或项目名称对应的profile),确保applicationUrl同时包含HTTPS和HTTP地址,示例如下:

"profiles": {
  "IIS Express": {
    "commandName": "IISExpress",
    "launchBrowser": true,
    "launchUrl": "api/values",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    },
    "applicationUrl": "https://localhost:44333;http://localhost:5000"
  },
  "YourApiProject": {
    "commandName": "Project",
    "launchBrowser": true,
    "launchUrl": "api/values",
    "applicationUrl": "https://localhost:44333;http://localhost:5000",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

这里给HTTP指定了5000端口,你可以换成其他未被占用的端口,但注意不要和HTTPS的44333冲突(HTTPS默认用443段端口,HTTP尽量选80、5000这类常规端口)。

2. 显式配置Kestrel端点(Program.cs)

.NET Core 2默认用Kestrel作为Web服务器,你可以在Program.cs里直接指定HTTP和HTTPS监听端口,避免依赖launchSettings的默认配置:

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseKestrel(options =>
        {
            // 配置HTTP监听端口
            options.ListenLocalhost(5000);
            // 配置HTTPS监听端口(沿用你原来的44333)
            options.ListenLocalhost(44333, o => o.UseHttps());
        })
        .Build();

这样不管用IIS Express还是直接运行项目,Kestrel都会同时监听两个端口。

3. 修正IIS Express的绑定配置

如果你用IIS Express运行项目,可能需要手动修改IIS配置文件。找到项目根目录下的.vs/config/applicationhost.config(这个文件夹是隐藏的,需先显示隐藏文件),搜索你的项目名称,找到<site>节点,确保<bindings>里同时包含HTTP和HTTPS绑定:

<site name="YourApiProject" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Your\Project\Full\Path" />
    </application>
    <bindings>
        <binding protocol="https" bindingInformation="*:44333:localhost" />
        <binding protocol="http" bindingInformation="*:5000:localhost" />
    </bindings>
</site>

添加完HTTP绑定后,重启IIS Express生效。

4. 测试HTTP访问

完成上述配置后,重启API项目,访问http://localhost:5000(对应你设置的HTTP端口),应该就能正常响应了。如果还是不行,检查防火墙是否拦截了该端口,或者用netstat -ano命令查看端口是否被占用。

5. 配置iisexpress-proxy用于手机测试

当HTTP访问正常后,就可以用iisexpress-proxy把本地HTTP端口代理到手机可访问的地址了。比如把本地5000端口代理到3000端口:

iisexpress-proxy 5000 to 3000

确保你的手机和电脑在同一个局域网内,用手机浏览器或测试工具访问http://你的电脑IP:3000,就能正常调用API了。


内容的提问来源于stack exchange,提问作者Luuk Wuijster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:22:52