You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何配置Visual Studio for Mac Web API允许同网设备通过IP:Port访问

Fixing "Cannot Open Page" When Testing ASP.NET Core API from Phone to Visual Studio for Mac

Hey there! I’ve dealt with this exact scenario plenty of times—testing a local API from a mobile app on my phone while developing on a Mac. Let’s break down the steps to get this working smoothly:

1. Configure Your API to Listen on All Network Interfaces

By default, ASP.NET Core apps only bind to localhost, which means they won’t respond to requests from other devices on the network. You need to update the app to listen on all available interfaces:

Option A: Update Program.cs

Add the UseUrls method to your web host builder to explicitly set the listening address. For example:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();

// Configure the app to listen on all interfaces (0.0.0.0) and your desired port
builder.WebHost.UseUrls("http://0.0.0.0:1234", "http://localhost:1234");

var app = builder.Build();

// Configure the HTTP request pipeline.
app.UseAuthorization();

app.MapControllers();

app.Run();

Option B: Modify launchSettings.json

Open your project’s Properties/launchSettings.json file, and update the applicationUrl property to include 0.0.0.0:

"profiles": {
  "YourApiProjectName": {
    "commandName": "Project",
    "dotnetRunMessages": true,
    "launchBrowser": true,
    "launchUrl": "api/values",
    "applicationUrl": "http://0.0.0.0:1234;http://localhost:1234",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  }
}

Note: Keeping localhost in the list lets you still test from your Mac’s browser normally.

2. Allow Incoming Connections Through Mac’s Firewall

Mac’s built-in firewall might block incoming requests to your API port. Here’s how to fix it:

  • Open System Preferences > Security & Privacy > Firewall
  • Click the lock icon to make changes (enter your admin password)
  • Click Firewall Options
  • Look for Visual Studio for Mac or dotnet in the list, and set its permission to Allow incoming connections
  • If you don’t see either, click the + button, navigate to /usr/local/share/dotnet/dotnet (or find Visual Studio in /Applications/Visual Studio.app), add it, and set the permission to allow.

Alternatively, you can temporarily disable the firewall to test if this is the issue—but remember to re-enable it afterward for security.

3. Ensure Your Phone and Mac Are on the Same Network

Your phone must be connected to the same Wi-Fi network as your Mac (they can’t be on separate networks, unless you set up port forwarding, which is overkill for local testing).

To find your Mac’s local IP address:

  • Open System Preferences > Network > Wi-Fi
  • Look for the IP Address field (it’ll look something like 192.168.1.105)

4. Test the API from Your Mac First

Before trying your phone, verify that the API responds to your Mac’s local IP. Open a browser on your Mac and enter:
http://[YourMacLocalIP]:1234/api/values
If this works, your API is correctly configured to accept external requests. If not, double-check your port and binding settings.

5. Check Mobile App Network Permissions

Don’t forget to make sure your mobile app has permission to access the internet:

  • iOS: Go to Settings > [Your App Name] > Cellular Data and toggle it on.
  • Android: Open your app’s settings in the system settings, navigate to Permissions, and ensure Internet permission is enabled.

6. Troubleshoot Common Pitfalls

  • Port conflicts: If your port is already in use, change it to another number (like 5000 or 5001) in your launch settings and update your test URL accordingly.
  • HTTPS issues: If you’re using HTTPS, your phone will reject the self-signed development certificate. For testing, stick with HTTP first. If you need HTTPS, you’ll need to install the certificate on your phone (look up "ASP.NET Core trust development certificate on iOS/Android" for steps).
  • Dynamic IP: Your Mac’s local IP might change if your router assigns dynamic addresses. Double-check the IP before each test session.

Once all these steps are done, try accessing http://[YourMacLocalIP]:1234/api/values from your phone’s browser first—if that works, your mobile app should be able to connect too!

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

火山引擎 最新活动