web-dev-qa-db-ja.com

Edgeでasp.netコア2.0アプリをデバッグするときに、「このローカルホストを開くには新しいアプリが必要です」ポップアップが表示されるのはなぜですか?

Localhost:51531 /の後に「MyMessages/Index」と入力すると、このポップアップが表示されます。私には非常に奇妙に思えますが、おそらく単純なものです。

だから私はlocalhost:51531/MyMessages/Index in Edge。

コントローラーはpublic class MyMessagesController : Controller

コントローラーのアクションは次のとおりです。

public IActionResult Index()
{
    return View();
}

なぜこれが起こっているのでしょうか?

これはIE11では発生しません

14
JohnOsborne

問題は、URLの先頭に scheme が残っていることです。 一部のブラウザは特定の状況で推論しますが、すべてのブラウザが常に推論するわけではありません。

の代わりに:

localhost:51531/MyMessages/Index

試してください:

http://localhost:51531/MyMessages/Index
31
mjwills

そのURLにhttp://を追加してみてください。 EdgeはlocalhostRIスキーム として解析しているようです。そのため、Windowsはそれを開くアプリを見つけることができません-マシンにlocalhostに登録されているアプリケーションはありません。

http://localhost:51531/MyMessages/Index

http://を推測するのは簡単なように思えるかもしれませんが、たとえば、 file://C:\Users\[Username]\Desktop\document.txtは任意のWebブラウザーでファイルを開きます-ブラウザーがlooksURIスキームのように(localhost:51531のように)、それが1つであると仮定するのは理にかなっています。

アプリケーションに登録されていないスキームでURLを入力すると、「これを開くには新しいアプリが必要です」ダイアログが表示されます。カスタムアプリケーション固有のスキームの例は、Steam://[appid] URLスキーム、またはOutlookでよく使用されるmailto://[address]スキームです。

RIスキームとは? も参照)

6
Moira

Httpのプレフィックスを付けるという単純なオプションは問題ないように見えますが、Ctrl + R(開発者がよく行う)を押すと、奇妙な理由でアプリケーションがポップアップして開くので迷惑です。 DNSエントリ(etc/hosts)を追加することで動作するようになり、「エッジ」がlocalhostを認識できるようになりました。

127.0.0.1       localhost
1
Lokeshwer