在为IIS配置ASP.NET应用程序后加载ASP.NET应用程序时发生错误

时间:2016-04-21 17:41:38

标签: asp.net iis azure-devops iis-express

我将ASP.NET Web应用程序更改为使用本地IIS而不是IIS Express。现在重新打开解决方案后,加载应用程序时出现以下错误:

  

错误:项目' Atlas2'因为无法创建Visual C#2015编译器而无法打开。 ' Atlas2'已经是工作区的一部分。

     

错误:项目' Atlas2'因为Visual C#无法打开    无法创建2015编译器。具有相同键的项目具有    已被添加。

有人可以帮助我如何重新加载项目吗? 我使用Visual Studio Team Services(TFS Online),如果有帮助的话。

12 个答案:

答案 0 :(得分:34)

我解决了我的问题。我卸载了项目并编辑了.csproj文件。我做了以下更改:

  • <UseIISExpress>false</UseIISExpress>为真
  • 删除<UseIIS>True</UseIIS>
  • 删除<IISUrl>http://localhost/MyWebApp</IISUrl>

然后我重新加载了项目。有效。实际上它回滚使用IIS Express。

答案 1 :(得分:25)

我的系统出现了同样的问题,并通过以管理员模式运行Visual Studio解决了问题。问题是IIS具有与ASP.NET项目相同的主机+端口名称,并且没有管理员权限,Visual Studio无法添加网站。

答案 2 :(得分:6)

使用Visual Studio 2015从IIS Express切换到完整IIS后出现此错误。 当我以管理员身份运行Visual Studio时,我能够加载项目。

答案 3 :(得分:4)

我在VS 2015中遇到了类似的错误。

  

“无法打开,因为visual c#2015编译器无法打开   创建。“”已添加相同的键“

我能够通过在Visual Studio 2013中打开解决方案,清理解决方案,关闭visual studio,然后在Visual Studio 2015中打开相同的解决方案来解决此问题。

我还注意到,在执行此事件序列之后,最初提供此错误的项目的csproj文件更新了其ProjectExtensions元素并设置了<UseIIS>False</UseIIS>

在发生错误时和解决方法之后csproj之间差异的图片。

enter image description here

请记住,在我使用此解决方法之前,我尝试手动更新该元素并设置为false,但这不起作用。

答案 4 :(得分:3)

问题是应用程序已配置为使用本地IIS而不是Express,并且他们可能会因为您无法加载应用程序而导致两个问题。

问题1。您的本地系统中没有安装IIS。在这种情况下,您必须安装IIS或必须打开 .csproj 文件并执行此操作变化:

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

问题2. Visual Studio无权访问IIS,在这种情况下只需以管理员模式打开Visual Studio。

答案 5 :(得分:3)

我遇到了类似的问题,但提到的解决方案都没有对我有用。

但是,我在visual studio最近的解决方案列表中打开了我的解决方案。但是,当我通过双击它从资源管理器打开解决方案文件时,项目正确加载。

答案 6 :(得分:2)

当在IIS中未设置身份验证或未在IIS中设置网站(或虚拟目录)时,通常会发生这种情况。要解决此问题,请打开IIS管理器。

  1. 确保项目存在网站或虚拟目录,并指向包含项目bin文件夹的文件夹。
  2. 打开身份验证并启用匿名身份验证。
  3. 选择匿名身份验证时单击“编辑”。
  4. 选择特定用户,输入您的Windows凭据(域\用户名)。
  5. 打开.NET授权规则。
  6. 确保仅存在允许/所有用户。
  7. 转到应用程序池 - >高级设置。
  8. 选择身份并输入您的Windows凭据(域\用户名)。
  9. 这应该打开网站,以便Visual Studio可以加载您的项目。如果没有,请转到您的站点的“高级设置”,然后选择“物理路径凭据”。确保设置为传递身份验证。

答案 7 :(得分:0)

我收到了这个错误。

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

搞乱了.csproj文件......我能够让它发挥作用。

将我当前的文件与TFS源代码控制中的内容进行比较后,唯一的区别就是这一行。

以前,这条线不存在。在我的工作中#34; (在混乱之后)文件,我有

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

答案 8 :(得分:0)

当我将我的WCF REST服务从IISExpress移动到localhost时,我遇到了同样的问题。所以,我做的是在记事本中打开.csproj文件并查找UseIISExpress,将其值从false更改为True。 然后以管理员身份打开VS2015,它运行正常。好处是,当我运行项目时,它仍然在我的localhost上运行而不是IISExpress。

答案 9 :(得分:0)

我在Visual Studio 2017的升级时遇到了这个问题。它已经修复,现在可以在更新的版本中使用。

您可以通过产品内通知或https://www.visualstudio.com

下载最新更新

价: Project could not be opened because the Visual C# 2017 compiler could not be created

答案 10 :(得分:0)

我创建了一个新的Sln文件。

关闭解决方案。

打开主项目的Project文件。将违规项目添加回新的Sln文件。

将Sln文件保存在旧故障文件的顶部。

答案 11 :(得分:-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>

我删除了此应用程序的整个网站代码,已保存,然后右键单击我的解决方案&gt;添加&gt;现有项目并将项目重新添加到解决方案中。