2016-04-21 124 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> 

我删除整个网站标记为这个应用程序,保存,然后,右键单击我的解决方案>添加>现有项目,重新添加项目到解决方案。

相关问题