web-dev-qa-db-ja.com

VS2012が間違ったパスに基づいてアプリを起動する

C:\ Dev\MyApp\Mainにソース管理下にあるアプリ(TFS 2012も)があります。

新しい機能を開発しているので、c:\ Dev\MyApp\BranchNewFeatureにブランチを開くことにしました。

私は開発し、テストする時が来たと判断したとき、それは私がまったく変更を加えていないようでした。 F5キーを押すと、アプリのベースラインバージョンが表示されます...調べてみると、非常に興味深い事実に気づきました。IISを確認すると、アプリケーションの「起動パス」が古い1つ(c:\ Dev\MyApp\Main)。

誰かがIIS Expressが新しいパスを指すようにするのを手伝ってくれますか?(C:\ Dev\MyApp\BranchNewFeature)

21
Leonardo

私は同じ問題に遭遇しました。それを修正するために、私は cheesemacfly の提案を使用して、新しいディレクトリを指すようにC:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.configを更新しました。

このソリューションの明らかな欠点は、新しいブランチを頻繁に切り替える予定がある場合は、これを繰り返し行う必要があることです。 VS2012のバグのようです...

24
Chris Gillum

VSを再起動すると、この問題は解決するようです。これは、すべてのWindows製品の標準であるように、単なる代替ソリューションです。閉じて再起動すると、ブームが機能します。

何が起こったのか:VS2013を使用してブランチでWebプロジェクトに取り組んだ後、同じ問題に直面しました。 Chris Gillumが前述したように、VSを再起動するときにapplicationhost.configを開いたところ、ファイルが正しいパスで自動更新されました。したがって、これは間違いなくVisualStudioのバグのようです。

更新:

この回答を投稿して以来、この問題を何度も目にしました。そして、VSを再起動する代わりの方法を見つけました。これが私が今していることです:

  1. IISExpressアイコンを右クリックし、[すべてのアプリケーションを表示]をクリックします
  2. リストからサイト名を選択します
  3. 構成ファイルをクリック(および開く)
  4. 次のセクションで、ワークスペースへの物理パスを検索して修正します。

    <sites>
        <site name="MyWebSite" id="XXX">
            <virtualDirectory path="/" physicalPath="FIX_THIS_PATH" />
        </site>
    <sites>
    

IISExpressはサイトを自動的に更新するため、VSを再起動する必要はありません。これが誰かを助けることを願っています。

17
Digitrance

Visual Studio 2015で同じ問題を検索している場合、applicationhost.configファイルは隠しフォルダー$ SolutionDirectory/.vs/configに移動しています。

2
James

IISExpressWebプロジェクトを含むVisualStudioソリューションを開くと、applicationHost.config <site>要素の構成が更新されます。次に、別のブランチのソリューションを開くと、<site>構成が上書きされてその別のブランチを指す可能性があります。

たとえば、ポート4000でIISExpressを使用するように構成されたWebプロジェクトを含むソリューションの2つのブランチがあるとします。Branch1のソリューションを開くと、applicationHost.configはサイトを登録する<site>要素で更新されます。 localhost:4000で、Branch1のフォルダーを指しています。ソリューションの「デバッグを開始」すると、ブラウザがlocalhost:4000を開き、すべてが正常に機能します。

次にBranch2のソリューションを開くと、applicationHost.configが再度変更され、<site>要素がオーバーライドされ、localhost:4000が代わりにBranch2を指すようになります。ここで、開いているBranch1ソリューションまたは開いているBranch2ソリューションのいずれかで「デバッグを開始」すると、applicationHost.configファイルにあるため、localhost:4000はBranch2を指します。

この問題を回避するには、異なるポートを使用するように2つのブランチを構成すると、VisualStudioはブランチごとに1つずつ2つの別々のapplicationHost.config<site>要素を管理します。新しいブランチを作成するたびに、新しいポート番号を構成することを忘れないでください。

2
david

プロジェクトをコピーしたのと同じような状況でした。プロジェクトを実行した後、コピーして編集したバージョンではなく、元のプロジェクトがブラウザに表示されました。私の解決策は、影響を受けるすべてのサイトを構成ファイルから削除することでした。

C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config

次に、Visual Studioでプロジェクトを右クリックし、Propertiesをクリックしてから、Webタブをクリックする必要がありました。このタブで、Project Urlで指定されたポートを変更して保存しました。次に、Visual Studioは、プロジェクトをアプリケーションのホスト構成ファイルに追加し直すかどうかを尋ねました。 [はい]をクリックしてプロジェクトを実行しましたが、突然すべてがうまくいきました。

私の特定の問題は、Visual Studioのバグではなく、構成の不一致でした。

1
Luke Alderton

この記事を見つけたとき、私は同じような状況にあり、答えを探していました。この修正を適用することを考えましたが、分岐または再度マージする必要があるたびに大変な労力を感じました。

もう少し掘り下げてみたところ、もっと簡単な修正が見つかったと思います。 Visual Studio 2013で、プロジェクトのプロパティを開き、[Web]オプションをクリックすると、[仮想ディレクトリの作成]ボタンが含まれる[サーバー]セクションが表示されることがわかりました。

このボタンをクリックすると、プロジェクトが入っている別のディレクトリを指しているという質問が表示され、修正したいと思います。 [はい]をクリックすると修正され、今すぐデバッグすると正しい場所からプルされます。

1
Vincent Beilke

VS 2015では、構成ファイルを直接編集する必要はありませんでした。分岐プロジェクトを開き、プロジェクトの下のプロパティページに移動しました。 [Web]タブに移動し、[サーバー]> [プロジェクトURL]を編集します。

0
ja928