为啥在 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 MVC 控制器时,我的 VS2008 调试会话总是退出?