2016-04-21 127 views
17

我將ASP.NET Web應用程序更改爲使用本地IIS而不是IIS Express。重新打開解決方案後,加載應用程序時發生以下錯誤:在配置IIS後加載我的ASP.NET應用程序時發生錯誤

錯誤:無法打開項目'Atlas2',因爲無法創建Visual C#2015編譯器。 'Atlas2'已經是工作區的一部分。

錯誤:Project'Atlas2'無法打開,因爲Visual C# 2015編譯器無法創建。已經添加了具有相同密鑰的項目 。

會有人請幫助我如何重新加載項目? 我使用的是Visual Studio Team Services(TFS Online),如果有幫助的話。

+4

您是否在Visual Studio中以管理員權限打開解決方案?以管理員模式運行visual studio並檢查它是否有效? –

+0

即使在管理員模式下運行VS,我也遇到了這個錯誤。 – ashes999

+0

另請參閱:http://stackoverflow.com/a/38092339/38461 – BozoJoe

回答

31

我解決了我的問題。我卸載了該項目並編輯了.csproj文件。我做了以下修改:

  • <UseIISExpress>false</UseIISExpress>
  • 刪除<UseIIS>True</UseIIS>
  • 刪除<IISUrl>http://localhost/MyWebApp</IISUrl>

然後我重新加載該項目。有效。實際上它回滾到使用IIS Express。

+6

做出這些改變對我來說還不夠。進行更改後,我還必須重新啓動Visual Studio。 –

+1

還有一點需要補充:就我而言,我重新從源代碼控制下載了整個解決方案。編輯文件時,我注意到端口設置錯誤。在我的情況 30339 的http://本地主機:30339/ 在IIS,端口設置爲3434。當我換到30339 3434,我可以再次加載該項目。 – Tybs

2

這經常發生在身份驗證尚未在IIS中設置或網站(或虛擬目錄)尚未在IIS中設置時。要解決此問題,請打開IIS管理器。

  1. 確保該項目存在網站或虛擬目錄,並指向包含項目的bin文件夾的文件夾。
  2. 打開身份驗證並啓用匿名身份驗證。
  3. 選中匿名身份驗證時單擊編輯。
  4. 選擇特定用戶,輸入您的Windows憑據(域\用戶名)。
  5. 打開.NET授權規則。
  6. 確保只存在允許/所有用戶。
  7. 進入應用程序池 - >高級設置。
  8. 選擇身份並輸入您的Windows憑據(域\用戶名)。

這應該打開網站,以便Visual Studio可以加載您的項目。如果沒有,請轉到您的站點的高級設置並選擇物理路徑憑證。確保設置爲傳遞身份驗證。

+0

感謝您的回答。 –

20

在我的系統發生同樣的問題,並通過在管理員模式下運行Visual Studio得到解決。問題是IIS具有與ASP.NET項目相同的主機+端口名稱,並且沒有管理員權限,因此Visual Studio無法添加該網站。

+1

我試過上面沒有喜悅的解決方案,恢復了原狀並嘗試了這個解決方案,並且它第一次工作。感謝:) – IfElseTryCatch

+0

當Windows 10在安全更新後重新啓動並重新打開每個打開的程序時,這讓我感到滿意。當然,它不會以管理員模式打開Visual Studio,所以我得到了錯誤。 – John81

+1

管理員權限幫助了我。謝謝! – techsaint

0

我得到這個錯誤。

我正在使用IIS-Express。我有VS2015。

搞亂了.csproj文件....我能夠得到它的工作。

將我目前的文件與TFS源代碼管理中的內容進行比較後,唯一的區別就是這一行。

此前,該行不存在。在我的「工作」文件(messin'與它之後),我有

<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' "> 
4

我是在VS得到一個類似的錯誤2015年

「因爲的Visual C#2015編譯器不能 創建無法打開。」 「已經添加了相同的密鑰」

我能夠通過在Visual Studio 2013中打開解決方案,清理解決方案,關閉Visual Studio,然後在Visual Studio 2015中打開相同的解決方案來解決該問題。

我也注意到,這樣序列的事件,這是最初給這個錯誤更新了其ProjectExtensions元素,並將下面的csproj之間差異的<UseIIS>False</UseIIS>

圖像時的錯誤是存在的後該項目的csproj文件後,解決方法。

enter image description here

請記住,在我使用此解決方案,我試圖手動,並設置該元素更新到假的,但沒有奏效。

+0

我也注意到我可以通過確保我的本地IIS服務器有一個已經綁定到端口80的站點來解決同一問題。看起來,VS實際上確保IIS在請求http:// localhost時提供站點服務。 – joey

+0

除此之外,我不得不刪除_projectName_.csproj.user文件以使其實際生效。 –

5

我從IIS Express切換到Visual Studio 2015的完整IIS後出現此錯誤。 我以管理員身份運行Visual Studio時能夠加載項目。

0

當我將WCF REST服務從IISExpress移動到本地主機時,我遇到了同樣的問題。所以,我所做的是我在記事本中打開了.csproj文件並查找了UseIISExpress,將它的值從false更改爲True。 然後以管理員身份打開VS2015並運行。好東西是,當我運行該項目時,它仍然在我的本地主機上運行,​​而不是IISExpress。

1

問題是應用程序已被配置爲使用本地IIS而不是Express,並且他們的coud是兩個問題,無法加載應用程序。

問題1.您沒有安裝在您的本地系統IIS,在這種情況下,你必須安裝IIS或必須打開的.csproj文件和做的修改:

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

第2期。 Visual Studio無法訪問IIS,在這種情況下,只需以管理員模式打開Visual Studio。

-1

我有同樣的確切的錯誤,這是什麼解決了我的問題。在解決方案的根目錄中,您應該看到.vs/config/applicationhost.config。在此文件夾中刪除違規網站。煤礦是這樣的:

 <site name="FrontEnd.Web" id="2"> 
      <application path="/" applicationPool="Clr4IntegratedAppPool"> 
       <virtualDirectory path="/" physicalPath="C:\xxxxx\xxxxx\xxxxx\FrontEnd.Web" /> 
      </application> 
      <bindings> 
       <binding protocol="http" bindingInformation="*:3391:localhost" /> 
      </bindings> 
     </site> 

我刪除整個網站標記爲這個應用程序,保存,然後,右鍵單擊我的解決方案>添加>現有項目,重新添加項目到解決方案。

相關問題