31

ポート 80 を使用する必要がある VS2010 から IIS Express の下の開発システムで実行しようとしているアプリがありますが、動作させることができません。ポート 80 が予約されているという情報を調べました。 http://learn.iis.net/page.aspx/1005/handling-url-binding-failures-in-iis-express/

しかし、それを行った後でも、vs2010 から 「IIS Express Web サーバーを起動できません。ポート '80' が使用されています。」というエラーが表示されます。

他に何を試すべきかわかりません。Process Hacker を使用してポート 80 を追跡しましSystemたが、NT カーネルお​​よびシステム プロセスであるプロセス ID 4 で実行されているようです。ただし、それがポートの使用を妨げるかどうかはわかりません。おそらくそれは、http.sysがそのポートを保持しているため、他の誰もそれを使用できないためだと思いましたか?

ファイルのデフォルトのバインディングを変更することで、IIS Express をポート 80 で実行するC:\Users\[MyUser]\Documents\IISExpress\config\applicationhost.configことができました。この方法で IIS Express を手動で起動することはできますが、そのポートにバインディングが既に存在するため、VS でエラーが発生します。したがって、8080 に戻し、VS2010 内のボタンを使用して仮想ディレクトリを作成します (これは、サイト バインドを入力するのと同じだと思います) が、アプリケーションをデバッグしようとするとエラーが発生します。ポート 80 で IIS Express を起動できないように VS2010 にハードコーディングされたものはありますか?

更新と修正: OK、確認すべきことがいくつか見つかり、問題は解決しましたが、完全ではありませんでした。ある投稿では、ポート 80 で監視できる SQL レポート サービスがインストールされていないことを確認するよう提案されていました。ただし、WebDeploy がインストールされていることに気付きました。Web Platform Installerの VS2010 SP1 バンドルにバンドルされていました。WebDeploy からのクライアント ツールが必要なため、これで問題ありませんが、ポート 80 で監視していたシステムにエージェントもインストールされました。サービスのリストに移動し、Web Deploy Agent Service. これを行うとすぐに、VS2010 内から IIS Express にポート 80 を使用できるようになりました。

IIS Express のポート 80 での実行に関連する新しい問題 しかし、私のアプリケーションは MVC3 アプリであり、MVC3 が私の要求をまったくキャプチャしていないために問題が発生しました。 、しかし、私のアプリのルートにあるtxtファイルにアクセスできるので、IIS Expressが提供しているのは私のサイトであることがわかります. ポート 80 の IIS Express で MVC3 (MVC3 専用かどうかはわかりません) の実行に問題がある人はいますか?

4

5 に答える 5

23

この問題に対する自分の回答を投稿するだけで、質問に回答済みのマークを付けることができます。 Web 配置エージェント サービスがインストールされている場合は、無効にします

于 2011-04-21T15:22:45.763 に答える
3

「Web Deploy Agent」サービスを発見していただき、ありがとうございます。これは、すべてが完全に機能していて、今日 IIS Express の更新バージョンをインストールしたところ、ポート 80 でまったく同じ問題が発生したため、最近オンになったばかりです。Web 配置エージェントをオフにしたので、私のシステムは再び正しく動作します。

ASP.NET MVC3 に関しては、ポート 80 とポート 443 でうまく機能します。これらのポートをバインドして、IIS Express が通常のユーザーとして使用できるようにするのはかなりの作業でした (そのほとんどは、上に投稿したリンク)、および使用する SSL 証明書をインストールします。これを機能させるために、applicationhost.config ファイルにすべてのエントリを手動で作成しました。適切なサイト セクションは以下のとおりです。

    <sites>
        <site name="PHP: A Main" id="2144116512">
            <application path="/">
                <virtualDirectory path="/" physicalPath="C:\var\www\amain\www" />
                <virtualDirectory path="/images" physicalPath="C:\var\www\images" />
            </application>
            <application path="/admin">
                <virtualDirectory path="/" physicalPath="C:\var\www\amain\www\admin" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:80:test.amainhobbies.com" />
                <binding protocol="https" bindingInformation="*:443:test.amainhobbies.com" />
            </bindings>
        </site>
        <siteDefaults>
            <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
            <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
        </siteDefaults>
        <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
        <virtualDirectoryDefaults allowSubDirConfig="true" />
    </sites>

私のサイトは、PHP と ASP.NET MVC3 を組み合わせたサイトであることに注意してください。ASP.NET MVC3 で実行するように全体を書き直している最中です。そのため、サイトのほとんどはまだ PHP ですが、多くの新しいものは現在、ASP.NET MVC3 を実行していますが、それは私にとってはうまくいきます。

IIS Express は Visual Studio 以外の MVC3 で適切に動作しますか、それとも MVC3 はまったく動作しませんか?

于 2011-04-21T00:00:24.343 に答える