Asp.net web api 如何从远程机器查看vs代码提供的.net core 2站点?

Asp.net web api 如何从远程机器查看vs代码提供的.net core 2站点?,asp.net-web-api,visual-studio-code,asp.net-core-2.0,Asp.net Web Api,Visual Studio Code,Asp.net Core 2.0,我正在玩vs代码和一个新的asp.net core 2 webapi项目。 当我调试它或不调试就运行它时,我可以使用http://localhost:5000但我无法计算(而且还没有找到新的.net core 2工作方式的任何内容)允许我将侦听url更改为类似http://0.0.0.0:5000甚至http://*:5000这样我就可以从网络上的另一台机器访问开发人员站点,用IE进行测试(它在Mac上运行) 我发现了大量的.net核心更新示例: 我刚刚遇到了环境变量,这似乎是一个更好的设置环境

我正在玩vs代码和一个新的asp.net core 2 webapi项目。 当我调试它或不调试就运行它时,我可以使用
http://localhost:5000
但我无法计算(而且还没有找到新的.net core 2工作方式的任何内容)允许我将侦听url更改为类似
http://0.0.0.0:5000
甚至
http://*:5000
这样我就可以从网络上的另一台机器访问开发人员站点,用IE进行测试(它在Mac上运行)

我发现了大量的.net核心更新示例: 我刚刚遇到了环境变量,这似乎是一个更好的设置环境变量的地方,这也是我在VS 2017中应该做的

在JetBrains Rider中,它们位于构建配置下(
Run
下拉列表,然后是
编辑配置…

在此窗口下,您可以编辑生成配置。找到您使用的一个(我目前只有一个,但您可能有一个dev、staging等),然后找到
环境变量:
(绿色)并单击右侧的按钮(蓝色)

在新窗口中,您可以根据需要更改
ASPNETCORE\u URL
。对我来说,我将其设置为
http://*:5000
,这会导致它接收任何传入的请求。例如
localhost:5000
192.168.0.10:5000
。然后我将我的
dev.somedomain.com
指向
192.168.0.10:5000
,我可以通过NGINX使用https在Mac上运行的开发站点上进行测试

这也允许通过不检查JetBrains Rider设置,在PC my PC的基础上轻松更改它


原始答复: 我终于找到了答案,@Métoule在评论中是正确的。直到现在我才明白这是什么意思

基本上,ASP.NET CORE 2.0中的
Program.cs
中的更改只是一种隐藏始终相同内容的方法。 而不是调用所有这些(就像您在Core 1中需要调用的那样):

.UseKestrel()
.UseContentRoot(目录.GetCurrentDirectory())
.Useii整合()
.UseStartup()
.UseApplicationInsights()
.Build();
你只是给那些你可能想改变的人打电话:

.UseStartup()
.Build();
因此,您仍然可以像以前一样添加
UseUrls()
,只需将其放在
.Build
();`像这样:

.UseStartup()
.useURL(“http://192.168.2.10:5000")
.Build();
因此,为了更改全新ASP.NET CORE 2项目的Url,我将
Program.cs
文件中的
Program
类更改为:

公共类程序
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
}
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.Build();
}
致:

公共类程序
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
}
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useURL(“http://192.168.2.22:5000")
.Build();
}
仅添加最后一行的第三行:
.useURL(“http://192.168.2.22:5000“”

只要没有防火墙,我现在就可以从网络上的另一台机器访问上面的url,并查看我的开发站点!:D

这是我在.NET Core 2.0中的
程序.cs
类:

使用Microsoft.AspNetCore;
使用Microsoft.AspNetCore.Hosting;
名称空间MyNamespace
{
公共课程
{
公共静态void Main(字符串[]args)
{
BuildWebHost(args.Run();
}
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.useURL(“http://*:5000”)
.Build();
}
}
请注意
.useURL(“http://*:5000”)
接受来自端口
5000
的任何传入请求。这仅在发布应用程序时使用(右键单击项目,发布…)

当您从VS 2017运行应用程序时(例如),VS会在
Properties/launchSettings.json
下进行设置。您可以随时编辑此文件


希望这能帮助其他人,因为我在这上面浪费了太多时间

对话可能有点晚了,但是如果您仍在尝试使用VS代码,您可以直接在VS Code launch.json中设置环境变量

    {
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
        {
            "name": ".NET Core Launch (web)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            // If you have changed target frameworks, make sure to update the program path.
            "program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/vscode-env.dll",
            "args": [],
            "cwd": "${workspaceFolder}",
            "stopAtEntry": false,
            "internalConsoleOptions": "openOnSessionStart",
            "launchBrowser": {
                "enabled": true,
                "args": "${auto-detect-url}",
                "windows": {
                    "command": "cmd.exe",
                    "args": "/C start ${auto-detect-url}"
                },
                "osx": {
                    "command": "open"
                },
                "linux": {
                    "command": "xdg-open"
                }
            },
            "env": {
                "ASPNETCORE_ENVIRONMENT": "Development",
                "ASPNETCORE_URLS": "http://*:5000"
            },
            "sourceFileMap": {
                "/Views": "${workspaceFolder}/Views"
            }
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

我找到了这个答案:,但我无法让它工作。也许它会对你有用。谢谢@Métoule,但这与旧的.net代码1的代码相同。#据我所知,当program.cs发生变化时,core 2的代码发生了变化。请参阅下面的“更新Program.cs中的Main方法”一节:您可以看到从该答案显示的内容到现在的内容的变化:(CreateDefaultBuilder的
CreateDefaultBuilder
方法旨在简化样板代码,但在下面,它看起来与1.x完全相同:我不确定这给我的答案增加了什么?主要是直接使用
.useURL(“http://*:5000”)的可能性)
program.cs
中,而不是在环境变量ASPNETCORE_url中添加
http://*:5000
。与我的原始答案一样?;)Well bar将IP替换为通配符,如我答案的较新部分所述。