Asp.net web api 如何从远程机器查看vs代码提供的.net core 2站点?
我正在玩vs代码和一个新的asp.net core 2 webapi项目。 当我调试它或不调试就运行它时,我可以使用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核心更新示例: 我刚刚遇到了环境变量,这似乎是一个更好的设置环境
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替换为通配符,如我答案的较新部分所述。