サーバーは、IIS。ドメインは”hoge”とします(架空のドメイン)。
ひよこSE(@PiyoOct)は、IISの環境構築後。
ClickOnce(.NetFrameworkで作られたアプリケーション。バージョンは3.5)をブラウザ経由で配布し、実行しようとしたときに、「リモート名を解決できませんでした」の例外が発生したので、そのメモ書きです。
結論から言えば、hostsファイルが暗号化されていたのが原因です。暗号化を解除して解決しました。
IISで「リモート名を解決できませんでした」が発生した状況
- 言語はVB.net(.netFramework3.5)で、開発環境はVisual Studio2019
- DNSサーバーは使わず、hostsファイルを直接編集して名前解決
- “https://hoge”で、Hello Worldが表示されることは確認済み
- “https://hoge/ab/application”(ClickOnceアプリの初期URL)を、ブラウザで直接入力すると、ClickOnceアプリがDLされようとする
- DLする瞬間に「リモート名を解決できませんでした」が発生
ちなみにですが、そもそも何も起こらない場合(404エラーが出るなどの)場合は、hostsファイルとIISのドメインが一致していない可能性が高いかと。
IISで「リモート名を解決できませんでした」が発生した原因はhostsファイルが暗号化されていた
結論から言って、「実はpingが通っていなかった」のが原因。
※職場PCのキャプチャは使用禁止なので、自宅PCのもの。いろいろとお察しください(*´ω`)。
じゃあ、pingが通っていない原因は?といえば、hostsファイルが暗号化されていたから。
hostsファイルが暗号化されているせいで、内容が読み込まれていなかった
hostsファイルが暗号化されているせいで、内容がうまいこと読み込まれていなかったようです。
ひよこSEのいる会社では、BitLockerか忘れましたが、セキュリティポリシーで、Cドライブ全体を暗号化しています。
「え?そんなことあるの?」と思った人は、ご名答。
hostsファイルは・・・暗号化されないからです。
ドキュメントフォルダとかに移したときに暗号化された
ただ、hostsファイルのパスは、C:\Windows\System32\drivers\etcにあって、「テキストエディタ」では、直接編集不可。
なので、いったん、「ドキュメントフォルダとかに移動させて、テキストエディタで編集」みたいなことをします。
その瞬間に、暗号化されちゃったわけです。ほんとに間抜け。
※PowerShellで編集できることを、皮肉にも、この後に知るという・・・。
hostsファイルの暗号化を解除して解決
ここまでくれば、「もう皆まで言うな。ひよこSEよ」と思ったかもしれないですが、念のため最後まで書きます。
hostsファイルの暗号化を解除すれば治ります。
エクスプローラー上で、hostsファイルを右クリック→「プロパティ」→「詳細設定」→「内容を暗号化してデータをセキュリティで保護する」のチェックを外して、OKを押す。
これでめでたしめでたし。
ほかに考えられる原因
あと、「リモート名を解決できませんでした」が起こりえる場合といえば、シンプルにhostsとIISのホスト名は一致しているが、ClickOnce(VBの設定ファイルやソース内)のホスト名が一致していない場合くらいかと。
「Windowsの機能の有効化で、無効になっている機能がないか?」
とかいろいろと探しちゃいましたが、実は身近かつシンプルなことが原因だったとは。
ひよこSEのような間抜けなことにならないように、ご注意を。
コメント