为啥在 Edge 中调试我的 asp.net core 2.0 应用程序时显示“您需要一个新应用程序才能打开此本地主机”弹出窗口?

Posted

技术标签:

【中文标题】为啥在 Edge 中调试我的 asp.net core 2.0 应用程序时显示“您需要一个新应用程序才能打开此本地主机”弹出窗口?【英文标题】:Why is a "You'll need a new app to open this localhost" popup being displayed when debugging my asp.net core 2.0 app in Edge?为什么在 Edge 中调试我的 asp.net core 2.0 应用程序时显示“您需要一个新应用程序才能打开此本地主机”弹出窗口? 【发布时间】:2018-03-12 20:09:29 【问题描述】:

我只是在 localhost:51531/ 之后输入“MyMessages/Index”,并且正在显示此弹出窗口。对我来说似乎超级奇怪,但可能很简单。

所以我尝试在 Edge 中导航到 localhost:51531/MyMessages/Index

控制器是public class MyMessagesController : Controller

控制器动作只是:

public IActionResult Index()

    return View();

知道为什么会这样吗?

这在 IE11 中不会发生

【问题讨论】:

您的问题似乎不见了!控制器名称是什么? 你能在“MyMessages”文件夹中显示视图名称“Index”吗? 如果您改为转到http://localhost:51531/MyMessages/Index 会发生什么?还是http://localhost:51531/MyMessages/ 尝试在该 URL 前添加 http://。它似乎将 localhost 解析为协议,这就是为什么它找不到可以打开它的应用程序的原因 - 可能您的计算机上没有为“localhost 协议注册的应用程序” "。 @mjwills 成功了 :) 谢谢 【参考方案1】:

问题是您在 URL 的开头留下了 scheme。 一些浏览器会推断 它在某些情况下,但并非所有浏览器都会一直推断它。

代替:

localhost:51531/MyMessages/Index

试试:

http://localhost:51531/MyMessages/Index

【讨论】:

【参考方案2】:

尝试在该 URL 前添加 http://。 Edge 似乎将 localhost 解析为 URI scheme,这就是为什么 Windows 找不到可以打开它的应用程序的原因 - 可能您的计算机上没有注册到 localhost 的应用程序。

http://localhost:51531/MyMessages/Index

推断http:// 似乎很容易,但请记住导航到例如file://C:\Users\[Username]\Desktop\document.txt 在任何 Web 浏览器中打开文件 - 因此,当浏览器看到 看起来 像 URI 方案(如 localhost:51531)的东西时,这样做是有意义的假设它是一个。

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

(另见What is a URI scheme?)

【讨论】:

这对我有用,在我的情况下,我正在调试一个应用程序并想强制页面的干净加载,所以我只是去地址栏并点击 [ENTER],直到我没有工作手动加了http://前缀,挺烦的!【参考方案3】:

添加 http 前缀的简单选项看起来不错,但假设您按 Ctrl+R(开发人员经常这样做),然后出于奇怪的原因,它仍然会弹出要打开的应用程序,这很烦人。 我能够通过添加 dns 条目(etc/hosts)使其工作,这样“Edge”现在必须知道 localhost 是什么。

127.0.0.1       localhost

【讨论】:

以上是关于为啥在 Edge 中调试我的 asp.net core 2.0 应用程序时显示“您需要一个新应用程序才能打开此本地主机”弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我只能调试我的两个 ASP.NET 应用程序之一?

为啥在单步执行 ASP.NET MVC 控制器时,我的 VS2008 调试会话总是退出?

为啥图像不显示在我的 ASP.Net 核心网站上?

具有捆绑和缩小功能的 ASP.NET MVC 4 应用程序,为啥在调试模式下启用缩小?

ASP.NET为啥找不到服务器?

为啥我的经典 ASP 页面不能在我的 ASP.NET 应用程序的根目录中运行?