如果这可能是一个不具体的问题,很抱歉,但我一直在寻找某种指令,但没有找到任何好的。
我正在用blazor服务器创建一个web UI,当我通过localhost访问同一设备上的服务器时,它运行起来没有问题。
昨天,我想在一台计算机上运行服务器,然后用局域网中的另一台计算机访问应用程序,但没有成功。
我已经做了什么:
-关闭了服务器PC 的防火墙
-在launchSettings.json上使用固定IP,而不是localhost:PORT
-ping服务器计算机,查看问题是否与网络有关。萍萍成功了。
当它已经在本地主机上工作时,我认为这真的很琐碎,但显然不是。如果有人能在这里帮我,我会很高兴。
有几种方法可以做到这一点。在不更改代码或计算机设置的情况下,最简单的方法是使用visual studio的第三方扩展,Keyoti的Conveyor。安装后,请重新启动visual studio。您可以在";工具->输送机-允许远程访问开发web服务器"在新窗口中,选择";"远程URL IP地址";基于您网络中的当前IP。然后,您可以在任何本地机器上使用给定的IP和端口访问您的项目。您可以阅读其文档以了解更多信息。
你会认为这会更容易,不是吗?您的服务器仅在侦听localhost
,有几种方法可以对此进行配置。IMO面临的挑战是找出您的服务器正在使用的配置。
以下是我发现有助于揭开ASP.NET核心URLS神秘面纱的一篇文章:https://andrewlock.net/5-ways-to-set-the-urls-for-an-aspnetcore-app/
本地测试最简单的方法(但不适用于产品部署(是在Program.cs文件中配置web主机生成器:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
// Change here: call UseUrls() with wildcard hostnames
webBuilder.UseUrls("http://*:5003", "https://*:5004");
});
}
一旦您的服务器正常工作(即,您可以通过http://127.0.0.1:5003
从开发机器访问服务器(,然后您可以选择最佳配置选项(UseUrls()
、environment-vars或命令行(。附带说明:可能还有一些额外的步骤来获得HTTPS URL,即,您需要有一个可信的(dev(证书。