従来、私はローカルホスト開発サーバーでカスタム ドメインを使用しています。次のようなものです:
dev.example.com
dev.api.example.com
これにより、Facebook などの外部 API を操作する際の柔軟性が大幅に向上しました。 これまでは、組み込みの Visual Studio 開発サーバーで を指す DNS レコードに CNAME を追加するだけで済んだため、非常にうまく機能していました127.0.0.1
。
しかし、これを IIS Express で動作させることができませんでした。試したことはすべて失敗したようです。IIS applicationHost.config
Express のファイルに正しい XML 構成を追加しましたが、IIS の実際のインストールほどエントリが有効であると認識されないようです。
<binding protocol="http" bindingInformation="*:1288:dev.example.com" />
この行を入力してリクエストしようとすると、http://dev.example.com:1288
次のメッセージが表示されます。
不正なリクエスト - 無効なホスト名
私が何か明らかなことを見逃しているかどうか、誰か知っていますか? それとも、IIS Express チームには、このタイプの使用法を予見する先見性が本当に欠けていたのでしょうか?
ベストアンサー1
これは私にとってはうまくいった方法です (VS 2013 用に更新されました。2010 の改訂履歴を参照してください。VS 2015については、こちらを参照してください。https://stackoverflow.com/a/32744234/218971):
Web アプリケーション プロジェクト ▶
Properties
▶を右クリックしWeb
、Servers
セクションを次のように構成します。- IIS Express ▼ドロップダウンから選択
- プロジェクトURL:
http://localhost
- アプリケーション ルート URL を上書きします:
http://dev.example.com
- クリックCreate Virtual Directory(ここでエラーが発生した場合は、IIS 5/6/7/8を無効にする必要があるかもしれません。IISを
Default Site
ポート以外のものに変更し:80
、Skypeはポート80を使用していませんなど)
オプション:
Start URL
をhttp://dev.example.com
(Windows XP、Vista、および 7)を開き
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
、構成ブロック内のサイト定義を<sites>
次のように編集します。<site name="DevExample" id="997005936"> <application path="/" applicationPool="Clr2IntegratedAppPool"> <virtualDirectory path="/" physicalPath="C:\path\to\application\root" /> </application> <bindings> <binding protocol="http" bindingInformation=":80:dev.example.com" /> </bindings> <applicationDefaults applicationPool="Clr2IntegratedAppPool" /> </site>
applicationPool
MVC を実行している場合: が「Integrated」オプションの 1 つ (「Clr2IntegratedAppPool」など) に設定されていることを確認します。開く
hosts
ファイルという行を追加します127.0.0.1 dev.example.com
。► Startあなたの申請!
コメントからの素晴らしいアドバイス:
- Visual Studio を管理者として実行する必要がある場合があります。
- 他の開発者にIISの実行を見せたい場合
netsh http add urlacl url=http://dev.example.com:80/ user=everyone
- サイトをすべてのホストに解決したい場合は、設定します
bindingInformation="*:80:"
。任意のポートを使用できますが、80が便利です。すべてのホストを解決するには、Visual Studioを管理者として実行する必要があります。