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 版本是 Ultimate 2012 Update 3。

4

12 回答 12

206

以管理员身份打开并没有解决我的问题。为我解决的问题是打开和文件并确保两者都设置为..csproj.csproj.userUseIISExpressfalse

就我而言,即使.csproj.user标记为..csprojSaveServerSettingsInUserFilefalse

<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <UseIISExpress>false</UseIISExpress> 
    <!-- ... -->
</Project>
于 2013-12-12T17:45:42.750 回答
47

解决办法是:删除*.csproj.user文件!

于 2014-07-02T10:28:56.507 回答
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>

来源:点击这里

于 2015-05-28T07:12:38.633 回答
4

当您使用为 IISexpress 启用使用时,applicationHost.Config(位于 %userprofile%\iisexpress\config 中),您必须选中“将服务器设置应用于所有用户(存储在项目文件中)”选项以避免写入您的设置在你的Project.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 文件不包含与项目设置相关的条目,则只需按下按钮“创建虚拟目录”并完成!

希望这可以帮助

于 2014-10-24T13:19:12.843 回答
3

就我而言,删除 *.csproj.user 文件效果很好

于 2016-02-23T01:44:07.547 回答
2

对我来说,两者的结合都适用于 Windows 7 64 位的 Visual Studio 2015 Preview:
1. 删除 *.csproj.user 文件和
2.<UseIISExpress>false</UseIISExpress>在解决方案文件中。
第 2 步的步骤:在 Visual Studio 中右键单击项目==> 卸载 ===> 编辑解决方案

于 2014-12-30T06:02:21.080 回答
2

我有同样的问题,对我来说,我所要做的就是以管理员身份打开 Visual Studio,这为我解决了这个问题。

如此简单的右键单击Visual Studio 2012,然后单击“以管理员身份运行”。希望这可以帮助

于 2013-11-14T16:27:14.320 回答
1

这就够了

在项目文件 x.csproj 中注释此行

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

x.csproj:错误:Web 项目“x”的 URL“ http://localhost/x ”配置为使用 IIS Express 作为 Web 服务器,但 URL 当前配置在本地 IIS Web 服务器上。要打开此项目,您必须使用 IIS 管理器从本地 IIS Web 服务器中删除使用此 URL 的绑定。

于 2016-05-16T12:59:06.723 回答
1

如果您的项目是解决方案的一部分,请打开解决方案文件 (.sln) 并编辑项目部分。

ProjectSection(WebsiteProperties) = preProject
    UseIISExpress = "false"

它对我有用。

于 2016-08-02T06:41:09.227 回答
1

当一个配置为使用 IIS 的项目由于找不到网站 (myproject.mycompany.local) 而无法加载时,我来到了这里——即使该网站在我的 Web 浏览器中加载得很好。

解决方案是确保 IIS 7 中的站点绑定将主机名设置为“myproject.mycompany.local”。要访问您网站的绑定:

  1. 在 IIS 7 中,在左侧导航面板中选择站点。
  2. 在右侧的 Actions 面板中,单击Bindings...

如果您的网站也没有在 Web 浏览器中加载,可能是因为您的 hosts 文件中没有它的条目:

127.0.0.1    myproject.mycompany.local
于 2016-07-11T15:38:42.770 回答
0

这个问题今天毁了我在 VS 2013 中的一天。我尝试了以上所有方法,但直到我在 IIS 中创建了一个网站并在 .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>

于 2014-10-10T16:36:35.567 回答
0

我有同样的问题,以管理员身份运行对我不起作用。

在项目的“.csproj”文件中设置<UseIIS>True</UseIIS>为 false 暂时可以加载项目,但在重新启动或关闭解决方案后值返回 True。

完成@Cyrus 的答案(对我有用)以获得更简洁的答案,我更多地关注项目的 csproj.user 文件并找到了问题的确切根源:设置<UseIISExpress>true</UseIISExpress>为 false,然后重新加载项目。工作良好,无需删除 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>
于 2017-01-29T07:01:40.350 回答