1. ホーム

[解決済み】IIS Expressでカスタムドメインを使用する場合

2022-03-27 23:30:25

質問

従来、私は自分のローカルホストの開発サーバーでカスタムドメインを使用していました。以下のようなものです。

dev.example.com
dev.api.example.com

これにより、Facebookなどの外部APIを使用する際に、非常に柔軟な対応ができるようになりました。これは、Visual Studio Development Serverに組み込まれているDNSレコードにCNAMEを追加するだけでよいので、過去にうまくいったことがあります。 127.0.0.1 .

しかし、IIS Expressでこれを動作させることはできません。私が試したすべてが失敗しているようです。正しい XML 構成を applicationHost.config ファイルを作成しましたが、IIS の真のインストールのようにエントリが有効であると認識されないようです。

<binding protocol="http" bindingInformation="*:1288:dev.example.com" />

この行を入力し、リクエストしようとすると必ず http://dev.example.com:1288 次のようなメッセージが表示されます。

不正なリクエスト - 無効なホスト名

私が何か明らかなことを見逃しているのかどうか、誰か知っていますか?それとも、IIS Express チームにはこのような使い方を見抜く先見の明がなかったのでしょうか?

解決方法は?

これは、私の場合、うまくいったことです(VS 2013用に更新、2010用の改訂履歴を参照、for VS 2015 はこちらをご覧ください。 https://stackoverflow.com/a/32744234/218971 ):

  1. Web Application Projectを右クリック ▶. Properties Web を設定した後 Servers セクションは、以下のようになります。

    • 選択 IISエクスプレス▼。 ドロップダウンから
    • プロジェクトのURL http://localhost
    • アプリケーションのルートURLを上書きします。 http://dev.example.com
    • クリック 仮想ディレクトリの作成 (ここでエラーが発生した場合は、IIS 5/6/7/8を無効にして、IISの Default Site をポート以外の場所に移動します。 :80 を確認します。 Skypeがポート80を使用していない など)
  2. オプションで を設定します。 Start URL から http://dev.example.com

  3. 開く %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (Windows XP、Vista、7) で、サイト定義を編集します。 <sites> configブロックを以下のような内容に変更してください。

    <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>
    
    
  4. MVC を実行している場合 applicationPool には、"Integrated" オプションのいずれか ("Clr2IntegratedAppPool" など) が設定されています。

  5. を開いてください。 hosts ファイル という行を追加し 127.0.0.1 dev.example.com .

  6. スタート アプリケーションを作成します。

コメントから素晴らしいアドバイスがありました。

  • Visual Studio を管理者として実行する必要がある場合があります。
  • 他の開発者にIISの実行を見せたい場合 netsh http add urlacl url=http://dev.example.com:80/ user=everyone
  • すべてのホストに対して解決させたい場合は、以下のように設定します。 bindingInformation="*:80:" . ポートはお好みで、80が便利です。すべてのホストを解決するには、Visual Studioを管理者として実行する必要があります。