Visual Studio 2015重置Web项目以使用IIS Express

19

我在VS2015中有一个Web项目,想要在本地IIS上运行。我在项目属性中设置了这个并且它可以正确地工作,但是每次我关闭并重新打开Visual Studio时,它总是重置项目使用IIS Express。

编辑:即使Visual Studio保持打开状态,当我关闭并重新打开解决方案时也会发生这种情况。

为什么会发生这种情况,如何更改?(注意-其他用户正在同一项目上工作,因此我不想将我的本地IIS设置存储在项目文件中,因为我认为这将在他们获取代码的最新版本时覆盖他们的设置。)


1
你是否总是以管理员身份打开Visual Studio? - Lex Li
我之前没有这样做,但为了解决这个问题,我已经开始这样做了。然而,这并没有产生任何影响。 - Tim
1
尝试删除 .vs 文件夹;但请注意,您可能会删除其他已更改为安装默认值的选项/设置。 - redcalx
这种情况在我们团队经常发生。我们还没有确定原因。 - Seth
这个主题中有很多不错的答案被莫名其妙地点了踩,而没有任何评论。 - Jeremy A. West
6个回答

19

我编辑了.csproj.user文件,这解决了问题。我将<UseIISExpress>true</UseIISExpress>改为<UseIISExpress>false</UseIISExpress>,其余保持不变。

我仍然不知道为什么通过UI进行此操作没有保存,如果有人能解释一下,我会欣然接受他们的答案。


15
我也遇到过这个问题,看起来如果你不改变URL,它就不会保存设置。所以我改变了我的项目URL,点击保存,然后再改回去并再次点击保存,这样文件就更新了。 - NibblyPig
谢谢NibblyPig - 在我看来,这比被接受的答案更好。 - Graham Laight
1
更改.csproj文件对我没有起作用,但@NibblyPig的解决方案有效。注意:这仍然是Visual Studio 2017中的问题(我正在使用),不仅限于原始问题所述的2015。 - Ben Barreth
1
评论一下,@NibblyPig的修复方法对我也有效,并且这在VS 2017(15.8.2)中也有效。 - Michael Armes
@BenBarreth,这在VS2019中仍然是一个问题! - AndrewD
1
适用于所有用户,包括您自己。 即使您更改了*.csproj设置并保存,似乎也必须删除*.csproj.user文件,否则当您重新打开解决方案时,启动按钮仍将显示IIS Express(即使它将使用IIS)! - AndrewD

5
NibblyPig在他们的评论中指出:如果您不更改URL,则不会保存设置。 所以我更改了我的项目网址,按保存按钮,然后再将其更改回来并再次按保存按钮,这样就更新了文件。我只是将此作为答案发布,以便更容易找到,但完全归功于NibbyPig。

3

删除文件projectName.csproj.user。此文件中用户指定的偏好设置会覆盖项目设置。


1

我选择项目,然后点击“在文件资源管理器中打开文件夹”。 接着找到相关的 .csproj 文件,并使用 Notepad++ 进行编辑,这对我来说很有效。


0
如果您不保存设置,您如何期望在下次打开项目时保留它并可用?我理解您的担忧,即您的设置不应影响其他正在同一项目上工作的团队成员。如果您遵循以下步骤,您的担忧可以得到解决。您所做的任何设置都将保持本地,并仅适用于您自己,其他团队成员不会受到影响。
  1. 转到项目属性。

  2. 在属性页面上转到Web选项卡。

  3. 取消选中“应用服务器设置以供所有用户使用”,如下所示。 Web project settings

  4. 单击工具栏中的保存按钮。

    这样,您的设置将存储在xxxx.user文件中,而不是项目文件中。


抱歉,我想我表达得不够清楚。我是使用工具栏中的保存按钮保存属性,但我保持复选框未选中。这就是我所说的“我不想在项目文件中存储我的本地IIS设置”的意思,因为复选框表示它将设置存储在项目文件中。我的.user文件仍然包含<UseIISExpress>true</UseIISExpress>这一行,但我并不特别想手动编辑它,因为我不太了解里面在做什么。因此,我试图通过属性UI来保存设置。 - Tim

0

这是我在使用VS 2015 Update 3时的解决方法,与NibblyPig所说的相关。但对我来说,只有在直接编辑项目文件时才有效。

  1. 卸载项目。(如果项目根本无法加载,请转到#2)
  2. 编辑项目文件。唯一需要更改的条目是(几乎在文件末尾)<IISUrl>。无需修改<UseIISExpress>配置,可以将其保留不变。

IISExpress的条目看起来类似于:

<IISUrl>http://localhost:123456</IISUrl>

将其更改为类似于以下内容:

<IISUrl>http://localhost/your_site_in_iis</IISUrl>

注意:“your_site_in_iis”应该是现有的网站。

  1. 保存并关闭项目文件。
  2. 关闭解决方案(这很重要)。
  3. 再次打开解决方案,问题应该消失了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接