SESEのキャリア

IISで「リモート名を解決できませんでした」の例外が発生した原因と解決方法

サーバーは、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が通っていなかった」のが原因。

pingが通っていない

※職場PCのキャプチャは使用禁止なので、自宅PCのもの。いろいろとお察しください(*´ω`)。

じゃあ、pingが通っていない原因は?といえば、hostsファイルが暗号化されていたから。

hostsファイルが暗号化されているせいで、内容が読み込まれていなかった

hostsファイルが暗号化されているせいで、内容がうまいこと読み込まれていなかったようです。

ひよこSEのいる会社では、BitLockerか忘れましたが、セキュリティポリシーで、Cドライブ全体を暗号化しています。

「え?そんなことあるの?」と思った人は、ご名答。

hostsファイルは・・・暗号化されないからです。

ドキュメントフォルダとかに移したときに暗号化された

ただ、hostsファイルのパスは、C:\Windows\System32\drivers\etcにあって、「テキストエディタ」では、直接編集不可。

なので、いったん、「ドキュメントフォルダとかに移動させて、テキストエディタで編集」みたいなことをします。

その瞬間に、暗号化されちゃったわけです。ほんとに間抜け。

※PowerShellで編集できることを、皮肉にも、この後に知るという・・・。

hostsファイルの暗号化を解除して解決

ここまでくれば、「もう皆まで言うな。ひよこSEよ」と思ったかもしれないですが、念のため最後まで書きます。

hostsファイルの暗号化を解除すれば治ります。

iisのリモート名を解決できませんでしたはhostsファイルの暗号化かも

エクスプローラー上で、hostsファイルを右クリック→「プロパティ」→「詳細設定」→「内容を暗号化してデータをセキュリティで保護する」のチェックを外して、OKを押す。

暗号化を解除する

これでめでたしめでたし。

ほかに考えられる原因

あと、「リモート名を解決できませんでした」が起こりえる場合といえば、シンプルにhostsとIISのホスト名は一致しているが、ClickOnce(VBの設定ファイルやソース内)のホスト名が一致していない場合くらいかと。

「Windowsの機能の有効化で、無効になっている機能がないか?」

とかいろいろと探しちゃいましたが、実は身近かつシンプルなことが原因だったとは。

ひよこSEのような間抜けなことにならないように、ご注意を。

スポンサーリンク

▼この記事がいいと思ったら、下の画像をクリックしてくれたら励みになります!

にほんブログ村 IT技術ブログ システムエンジニアへ
スポンサーリンク
ひよこSEのつぶやきブログ

コメント

タイトルとURLをコピーしました