web-dev-qa-db-ja.com

IISに設定された後、ASP.NETアプリケーションのロード中にエラーが発生します

IIS Expressの代わりにローカルIISを使用するようにASP.NET Webアプリケーションを変更しました。ソリューションを再度開いた後、アプリケーションのロード中に次のエラーが発生します。

エラー:Visual C#2015コンパイラを作成できなかったため、プロジェクト 'Atlas2'を開くことができませんでした。 「Atlas2」はすでにワークスペースの一部です。

エラー:Visual C#2015コンパイラを作成できなかったため、プロジェクト 'Atlas2'を開くことができませんでした。同じキーを持つアイテムが既に追加されています。

プロジェクトをリロードする方法を教えてください。役立つ場合は、Visual Studio Team Services(以前はTFS Online)を使用しています。

23

問題を解決しました。プロジェクトをアンロードし、.csprojファイルを編集しました。次の変更を行いました。

  • <UseIISExpress>false</UseIISExpress>をtrueに
  • <UseIIS>True</UseIIS>を削除
  • <IISUrl>http://localhost/MyWebApp</IISUrl>を削除

その後、プロジェクトをリロードしました。出来た。実際には、IIS Express。

34

システムで同じ問題が発生し、管理者モードでVisual Studioを実行することで解決しました。問題はIIS ASP.NETプロジェクトと同じホスト+ポート名を持ち、管理者権限がないため、Visual StudioはWebサイトを追加できませんでした。

25
Vishnu

Visual Studio 2015でIIS Expressからfull IISに切り替えた後、このエラーが発生しました。管理者としてVisual Studioを実行したときにプロジェクトを読み込むことができました。

6
red_dorian

VS 2015でも同様のエラーが発生していました。

「ビジュアルc#2015コンパイラを作成できなかったため、開くことができませんでした。」 「同じキーで既に追加されています」

Visual Studio 2013でソリューションを開き、ソリューションをクリーニングし、Visual Studioを閉じてから、Visual Studio 2015で同じソリューションを開くことで、問題を回避できました。

また、この一連のイベントを実行した後、最初にこのエラーを発生させていたプロジェクトのcsprojファイルがProjectExtensions要素を更新し、<UseIIS>False</UseIIS>

エラーが発生したときと回避策の後のcsprojの差分の次の画像。

enter image description here

この回避策を使用する前に、その要素を手動で更新してfalseに設定しようとしましたが、機能しませんでした。

4
joey

私は同様の問題に直面していましたが、言及された解決策のどれも私にとってはうまくいきませんでした。

ただし、Visual Studioの最近のソリューションリストからソリューションを開いていました。しかし、エクスプローラーでソリューションファイルをダブルクリックして開いたとき、プロジェクトは正しく読み込まれました。

3
th1rdey3

問題は、アプリがExpressの代わりにlocal IISを使用するように構成されていることであり、アプリをロードできない2つの問題があります。

Issue 1。ローカルシステムにIISがインストールされていません。この場合、IISまたは。csprojファイルを開いて変更を行うには:

  <UseIISExpress>false</UseIISExpress> to true
  Remove <UseIIS>True</UseIIS>
  Remove <IISUrl>http://localhost</IISUrl>

問題2。 Visual StudioはIISにアクセスできません。この場合、Visual Studioを管理者モードで開きます。

3
Shubham

これは、認証がIISでセットアップされていない場合、またはIISでWebサイト(または仮想ディレクトリ)がセットアップされていない場合によく起こります。この問題を修正するには、IISマネージャーを開きます。

  1. プロジェクトのWebサイトまたは仮想ディレクトリが存在し、プロジェクトのbinフォルダーを含むフォルダーを指していることを確認します。
  2. 認証を開き、匿名認証を有効にします。
  3. [匿名認証]が選択されている間に[編集]をクリックします。
  4. 特定のユーザーを選択し、Windows資格情報(ドメイン\ユーザー名)を入力します。
  5. .NET認証ルールを開きます。
  6. 許可/すべてのユーザーのみが存在することを確認してください。
  7. [アプリケーションプール]-> [詳細設定]に移動します。
  8. [ID]を選択し、Windows資格情報(ドメイン\ユーザー名)を入力します。

これによりWebサイトが開き、Visual Studioがプロジェクトをロードできるようになります。そうでない場合は、サイトの[詳細設定]に移動し、[物理パス資格情報]を選択します。パススルー認証に設定されていることを確認してください。

2
Clint B

このエラーが発生していました。

IIS-Expressを使用しています。そしてVS2015があります。

.csprojファイルをいじくり回した後、...それを機能させることができました。

現在のファイルをTFSソース管理にあるものと比較した後、唯一の違いはこの行でした。

以前は、この行は存在しませんでした。私の「作業中」(メッシンと一緒に)ファイルには、

<UseGlobalApplicationHostFile />

繰り返しますが、エラーの原因となるcsprojには魔法のラインがありませんでしたが、動作中のcsprojにはありました。

以下は、上記の行です。パンくずリストにのみ以下を使用し、すべてをコピー/貼り付けしないでください。魔法のラインは下から3です。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</ProjectGuid>
    <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MyRootNamespace</RootNamespace>
    <AssemblyName>MyAssemblyName</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    <UseIISExpress>true</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
    <IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>
    <IISExpressUseClassicPipelineMode>false</IISExpressUseClassicPipelineMode>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    <UseGlobalApplicationHostFile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
0
granadaCoder

新しいSlnファイルを作成しました。


ソリューションを閉じます。

メインプロジェクトのプロジェクトファイルを開きます。問題のプロジェクトを新しいSlnファイルに追加し直します。

古い障害のあるファイルの上にSlnファイルを保存します。

0
Jeremy Thompson

Visual Studio 2017のアップグレードでこの問題が発生しました。修正され、更新されたリリースで利用できるようになりました。

製品内通知または https://www.visualstudio.com から最新のアップデートをダウンロードできます。

参照: Visual C#2017コンパイラを作成できなかったため、プロジェクトを開くことができませんでした

0
Jawid

WCF RESTサービスをIISExpressからlocalhostに移動したときに同じ問題が発生しました。そのため、メモ帳で.csprojファイルを開いてUseIISExpressを探し、その値をfalseから変更しました。 VS2015を管理者として開いて機能しましたが、良いことは、プロジェクトを実行しても、IISExpressではなくローカルホストで実行されていることです。

0
Maryam