为什么在Edge中调试我的asp.net core 2.0应用程序时显示"你需要一个新的应用程序来打开这个本地主机"弹出窗口?

Joh*_*rne 14 c# razorengine asp.net-core-mvc microsoft-edge asp.net-core-2.0

我只是在localhost:51531 /之后输入"MyMessages/Index",并且正在显示此弹出窗口.看起来对我来说很奇怪,但可能很简单.

所以我尝试导航到localhost:51531/MyMessages/IndexEdge.

控制器是 public class MyMessagesController : Controller

控制器动作只是:

public IActionResult Index()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

这在IE11中不会发生

mjw*_*lls 34

问题是您已将该方案从URL的开头移开.有些浏览器会 在某些情况下推断它,但并非所有浏览器都会一直推断它.

代替:

localhost:51531/MyMessages/Index
Run Code Online (Sandbox Code Playgroud)

尝试:

http://localhost:51531/MyMessages/Index
Run Code Online (Sandbox Code Playgroud)


Moi*_*ira 6

尝试添加http://到该URL之前.Edge似乎正在解析localhostURI方案,这就是Windows无法找到打开它的应用程序的原因 - 您的计算机上可能没有注册的应用程序localhost.

http://localhost:51531/MyMessages/Index
Run Code Online (Sandbox Code Playgroud)

这似乎是一个没有脑子来推断http://,但请记住,导航到如file://C:\Users\[Username]\Desktop\document.txt在任何Web浏览器打开文件-所以当浏览器看到的东西,看起来像一个URI方案(像localhost:51531),它有一定道理的假设它是一个.

当使用尚未注册到应用程序的方案输入URL时,将出现"您需要一个新应用程序才能打开此对话框".自定义应用程序特定方案的一个示例是steam://[appid]URL方案,mailto://[address]即Outlook常用的方案.

(另请参阅什么是URI方案?)