Visual Studioでデバッグ実行すると、デフォルトでは http://localhost:63543/ みたいなアドレスでアクセスすることになりますよね。
しかし、OAuthのコールバック先として、localhost が指定できない場合など、localhost 以外のホスト名でアクセスしたい場合もあると思います。
「hosts ファイル等で名前解決できるようにしてアクセスすれば良いだけでしょ」と思ったのですが、そうでもなかったのでブログに書いておきます。ちなみに、127.0.0.1でアクセスする場合にもこの処置が必要です。
hosts ファイルの編集
C:\Windows\System32\drivers\etc 配下にある hosts ファイルにアクセスしたいホスト名を登録します。
127.0.0.1 mydomain.com
IIS Express の applicationhost.config を編集
C:\Users[ユーザ名]\Documents\IISExpress\config 配下に格納されている IIS Express の構成ファイル(applicationhost.config)を編集します。
以下のように<binding protocol="http" bindingInformation="*:63543:mydomain.com" />
を追記します。
<site name="WebApplication1" id="67"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="c:\users\nakaji\documents\visual studio 2013\Projects\WebApplication1\WebApplication1" /> </application> <bindings> <binding protocol="http" bindingInformation="*:63543:localhost" /> <binding protocol="http" bindingInformation="*:63543:mydomain.com" /> </bindings> </site>
URLの予約
このコマンドを実行しないと、管理者権限で起動した Visual Studio 以外で IIS Express を起動できなくなります。
管理者で起動したコマンドプロンプトから以下のようなコマンドを実行します。
> netsh http add urlacl url=http://mydomain.com:63543/ user=Everyone URL 予約を正常に追加しました
プロジェクトのURL変更
プロジェクトのプロパティで、プロジェクトのURLを変更しておきましょう。
やるべきことは以上
以上で設定は完了です。Visual Studioから実行して意図したホスト名でアクセスできていることを確認しましょう。
なんてえらそうなこと書いたけど
No1さん(@kamebuchi)としばやん(@shibayan)に教えてもらったことでした。
ミスターNo.1さん
@nakaji エラーになるのIEだけ?
— こすもす.えび (@kosmosebi) September 17, 2014
@nakaji http://t.co/GNPdgXVRvN このへんかな
— こすもす.えび (@kosmosebi) September 17, 2014
IISExpressはバインドしたの以外受け付けてくれないのでLocalhostすなおに使うか自分でサイト増やせばいいと思いますよ(ApplicationHost.configで)
— こすもす.えび (@kosmosebi) September 17, 2014
http://t.co/w0aIFL5UUA このあたり
— こすもす.えび (@kosmosebi) September 17, 2014
@nakaji localhostでええんやで
— こすもす.えび (@kosmosebi) September 17, 2014
OAuthのテストとか127.0.0.1でないとダメとかカスタムドメインでのテストとかのときにapplicationhost.configいじる
— こすもす.えび (@kosmosebi) September 17, 2014
@nakaji あるあr
— こすもす.えび (@kosmosebi) September 17, 2014
しばやん
以前ブログに書かれてるのに気がついた。
みなさん、いつもありがとうございます
いつもいろいろ教えてくれてありがとうございます。おかげで毎日楽しく生きてます。
追記(2015/7/17)
Visual Studio 2015 からかどうかはわかりませんが、プロジェクトの設定で「すべてのユーザーにサーバー設定を適用(プロジェクト ファイルに格納)」にチェックが入っている場合は、ソリューションを保存してるフォルダにある .vs (隠しフォルダ)に applicationhost.config が格納されいるようです。