VS 2012は、カスタムバインディングホストでIISを使用するプロジェクトを読み込めません-IISExpressを使用していると考えています


85

IISを使用するASP.NETプロジェクトがあります。IISサイトは、カスタムバインディングホスト名を使用するように構成されています。プロジェクトファイルには、次の設定が含まれています。

...
<UseIISExpress>false</UseIISExpress>
...
<ProjectExtensions>
  <VisualStudio>
    <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
      <WebProjectProperties>
        <UseIIS>True</UseIIS>
        <AutoAssignPort>False</AutoAssignPort>
        <DevelopmentServerPort>8662</DevelopmentServerPort>
        <DevelopmentServerVPath>/</DevelopmentServerVPath>
        <IISUrl>http://custom.host.name/</IISUrl>
        <NTLMAuthentication>False</NTLMAuthentication>
        <UseCustomServer>False</UseCustomServer>
        <CustomServerUrl></CustomServerUrl>
        <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
      </WebProjectProperties>
    </FlavorProperties>
  </VisualStudio>
</ProjectExtensions>
...

プロジェクトがこのように構成されている場合、からサイトにアクセスでき、http://custom.host.name/デバッグ時にVSがIISワーカープロセスに自動的に接続します。

プロジェクトをリロードすると(ソリューションを閉じる/再度開くか、プロジェクトのコンテキストメニューでアンロード/リロードする)、予期しないことが発生します。プロジェクトの読み込みに失敗し(load failed)、ソリューションエクスプローラーのプロジェクト名の右側に表示され、メッセージボックスに次のメッセージが表示されます([出力]ウィンドウにも表示されます)。

The URL 'http://custom.host.name/' for Web project 'Some.Asp.Net.Project' 
is configured to use IIS Express as the web server but the URL is currently
configured on the local IIS web server. To open this project, you must use
IIS Manager to remove the bindings using this URL from the local IIS web server.

IIS Expressapplicationhost.configファイルからプロジェクトサイトの構成を削除しようとしましたが、役に立ちませんでした。

デフォルトサイトでプロジェクトをIISアプリケーションにマッピングするときに、この問題は発生しません。

VSバージョンはUltimate2012 Update3です。


3
ええ、このプロジェクトでIIS Expressを一度使用したことがあるので、VS2013でも同じ問題が発生しています...本当に迷惑です!
kipusoep 2013年

3
csprojまたはcsproj.userファイルを編集し、UseIISExpressfalseに設定してみてください。stackoverflow.com/a/19103452/138938
Jon Crowell

2
@HeadofCatering、私はちょうどこの問題を抱えていましたが、UseIISExpressはプロジェクトの.csprojファイルですでにfalseに設定されていました。ただし、IISを検索するだけで、csprojファイル(<ProjectExtensions> <VisualStudio> <FlavorProperties> <WebProjectProperties>内)内の「<UseIIS> True </ UseIIS>」XMLタグが見つかり、単に「< UseIIS> True </ UseIIS> "により、VisualStudioでプロジェクトを再度読み込むことができるようになりました。うまくいけば、これは他の意図しない影響を与えませんでした!
mgrandi 2013

2
@mgrandiタイプミスに注意してください。私のためにもトリックをするように設定<UseIIS>True</UseIIS>しまし <UseIIS>False</UseIIS>た。提案をありがとう!
ディオンV.

回答:


205

管理者として開いても問題は解決しませんでした。私にとってそれを修正したのは、とファイルの両方を開き、両方がに設定されていることを確認することでした。.csproj.csproj.userUseIISExpressfalse

私の場合、マークが付けられていても、.csproj.userファイルがファイルを上書きし.csprojていSaveServerSettingsInUserFileましたfalse

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>

48
csproj.userを削除すると、ようやく問題が解決しました。ありがとうございました!
ブライアンサムター

どうもありがとうございました。csprojの設定を見て頭を悩ませていました。すべてが良さそうだった。csproj.userファイルを削除した後、問題なくプロジェクトの読み込みを開始しました+ + 1
Esen


21

SaveServerSettingsInUserFile」をTrueに設定しましたが、うまくいきました。

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
    <WebProjectProperties>
      <UseIIS>True</UseIIS>
      <AutoAssignPort>True</AutoAssignPort>
      <DevelopmentServerPort>50584</DevelopmentServerPort>
      <DevelopmentServerVPath>/</DevelopmentServerVPath>
      <IISUrl>http://localhost:50584/</IISUrl>
      <NTLMAuthentication>False</NTLMAuthentication>
      <UseCustomServer>False</UseCustomServer>
      <CustomServerUrl>
      </CustomServerUrl>
      <SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
    </WebProjectProperties>
  </FlavorProperties>
</VisualStudio>

出典:ここをクリック


4

IISexpressの使用を有効にするapplicationHost.Config(%userprofile%\ iisexpress \ configにあります)を使用する場合は、[サーバー設定をすべてのユーザーに適用する(プロジェクトファイルに保存する)]オプションをオンにして、設定が書き込まれないようにする必要があります。 yourProject.csproj.userで プロジェクト設定

これを行うことは、project.csprojファイルを編集して書き込む<WebProjectProperties> <UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>62242</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl>http://localhost:8100/Claims/</IISUrl> <OverrideIISAppRootUrl>True</OverrideIISAppRootUrl> <IISAppRootUrl>http://localhost:8100/Claims/</IISAppRootUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer> <CustomServerUrl></CustomServerUrl> <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> </WebProjectProperties> ことと同じ です。IISExpressを有効にし、applicationHost.configファイルにプロジェクト設定に関連するエントリが含まれていない場合は、[仮想ディレクトリの作成]ボタンを押して完了します。 !!

お役に立てれば


これはどのバージョンのビジュアルスタジオですか?VS Pro 2013にはこのオプションがありません
Matt R

@Matt R:VS2012 proを入手したので、お使いのバージョンでも同じだと思います。ソリューションエクスプローラーで、web.applicationプロジェクトを選択し、右クリックして[プロパティ]を選択します。次に、タブ付きウィンドウが表示され、[Web]タブを選択すると、回答に同封したスクリーンショットが表示されます。回答!
zobidafly 2016


2

同じ問題が発生しました。管理者としてVisualStudioを開くだけで、問題は解決しました。

Visual Studio 2012を右クリックして、[管理者として実行]をクリックするだけです。お役に立てれば


2

私にとって、両方の組み合わせは、Windows
764ビットを使用したVisualStudio 2015プレビューで機能しました:1。*。csproj.userファイルを削除します
。2。<UseIISExpress>false</UseIISExpress>ソリューションファイルで。
手順2の手順:VisualStudioでプロジェクトを右クリック==>アンロード===>ソリューションを編集


1

これで十分です

プロジェクトファイルx.csprojのこの行にコメントします

<!--<UseIIS>True</UseIIS>-->

x.csproj:エラー:Webプロジェクト「x」のURL「http:// localhost / x」は、IIS ExpressをWebサーバーとして使用するように構成されていますが、URLは現在ローカルIISWebサーバーで構成されています。このプロジェクトを開くには、IISマネージャーを使用して、このURLを使用するバインディングをローカルIISWebサーバーから削除する必要があります。


1

IISを使用するように構成されたプロジェクトが、Webサイト(myproject.mycompany.local)を見つけることができなかったためにロードされなかったときに、Webブラウザーに正常にロードされたにもかかわらず、ここに着陸しました。

解決策は、IIS7でのサイトのバインディングのホスト名が「myproject.mycompany.local」に設定されていることを確認することでした。サイトのバインディングにアクセスするには:

  1. IIS 7では、左側のナビゲーションパネルでサイトを選択します。
  2. 右側の[アクション]パネルで、[バインディング... ]をクリックします

サイトがWebブラウザにも読み込まれない場合は、hostsファイルにサイトのエントリがないことが原因である可能性があります。

127.0.0.1    myproject.mycompany.local

1

プロジェクトがソリューションの一部である場合は、ソリューションファイル(.sln)を開き、プロジェクトセクションを編集します。

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

それは私のために働いた。


0

この問題は、今日のVS2013での私の一日を台無しにしていました。上記のすべてを試しましたが、IISでWebサイトを作成し、このセクションを.csprojファイル(特にIISUrl要素)に入力するまで、プロジェクトを読み込めませんでした。

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>81</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/SomeProject</IISUrl>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>


これは非常に理にかなっています。しかし、私はそれを機能させることができませんでした。
ウィネマッカ2016

0

私は同じ問題を抱えていました。管理者として実行してもうまくいきませんでした。

<UseIIS>True</UseIIS>プロジェクトの「.csproj」ファイルでfalseに設定すると、プロジェクトが一時的に読み込まれる可能性がありましたが、ソリューションを再起動または閉じると、値がTrueに戻りました。

@Cyrusの回答(私にとってはうまくいきました)を完成させて、よりきちんとした回答を得るために、プロジェクトのcsproj.userファイルに焦点を当て、問題の正確な原因を見つけました。falseに設定して<UseIISExpress>true</UseIISExpress>から、プロジェクトをリロードしました。csproj.userファイルを削除せずに正常に動作します。結果は次のようになります。

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ProjectFiles</ProjectView>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <NameOfLastUsedPublishProfile>My Project's Name</NameOfLastUsedPublishProfile>
  </PropertyGroup>

私の場合、(管理者としてではなく)Visual Studioを通常どおり開くたびに、IIS設定が返され、タスクを再度実行する必要があることに注意してください。
Homa Pourmohammadi 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.