2013-10-18 77 views
27

我有一个使用Visual Studio 2013的网站项目,每次打开它时,它都会为applicationHost.config中的网站项目添加一个新条目。我为我的开发使用IISExpress,但是我总是创建一个自定义条目来提供一些细节,我已将它配置为使用端口80,所以我希望没有Visual Studio对此文件进行任何修改。停止Visual Studio 2013修改IISExpress applicationHost.config

我已进入工具>选项> Web项目,并取消选中“为站点和项目使用IIS Express的64位版本”,关闭解决方案,从applicationHost.config中删除条目并重新打开项目Visual Studio,但是它仍然继续向applicationHost.config添加一个条目,并将我的网站项目命名为任何条目。

有没有办法从IISExpress完全断开Visual Studio?我喜欢使用它,但我想自己控制该服务和配置。

回答

0

在项目属性,我看到一个“Web”选项卡,其中包含有一个下拉菜单,你可以从下面选择“服务器”部分:

  • IIS快递
  • 本地IIS
  • 外部主机

我相信选择“本地IIS”是您需要的选项。

+0

这是一个'网站'项目,而不是'web应用程序'项目。项目属性中没有'web'选项卡。我希望这很简单。 –

4

How to: Specify a Port for the Development Server

我只是尝试了上述MSDN文章更改端口中描述的方法IIS Express使用(没有尝试80虽然)。

  1. 右键单击Solution Explorer中的网站,删除(不删档)
  2. 编辑applicationHost.config文件,更改绑定
  3. “加入现有的网站”在Visual Studio(点您先前删除的网站的文件夹)

此时,它似乎没有在applicationHost.config中创建新条目,并使用新端口。

+0

这似乎很有希望,但是每次我从MSDN文章中提到的“本地IIS”池中选择一个选项时,它都会尝试从Id =“1”添加站点,而不管我指定哪一个。这几乎就像是Visual Studio中的一个错误。这可能是因为在元素中配置的所有站点都使用端口80,我不确定。此外,但我没有太深入,如果网站受到源代码控制(它是),试图重新添加它可能会有问题。 –

+0

我在尝试时没有按照关于“本地IIS”选项卡的步骤进行操作。清楚的是,我能够通过这种方式更改端口号,并且没有在applicationHost.config中创建新条目,但是我将端口设置为55456这样的东西,没有什么特别的像端口80.当我用80端口尝试它时,我得到这个错误:打开网页http:// localhost时出错。本地IIS Web服务器和IIS Express Web服务器上都存在URL“http:// localhost”的站点。您需要编辑'applicationhost.config'文件以更改IIS Express使用的端口号。 – Anssssss

+0

同样的问题。即使从文件系统添加现有站点,它也会尝试在applicationHost.config中添加Id =“1”的站点记录,尽管显式地给出了其他Web项目的路径(就像Id =“8”I相信)。我诚实地认为这不应该是预期的行为,并会向微软提交错误报告。 –

0

如果您不想使用本地开发服务器,则可以非常轻松地连接到本地计算机上的IIS进程。

有一种方法可以在属性中设置调试的构建输出位置(在解决方案资源管理器中右键单击项目并选择“属性”)。如果你想在没有额外设置的情况下第一次轻松完成这个任务,只需将你的调试版本的输出复制到你在IIS中配置的网站文件夹。

接下来,确保您可以访问IIS网站。如果是这样,返回到Visual Studio并转到Debug-> Attach to Process菜单项。从列表中选择“w3wp.exe”(您可能需要查看“查看所有进程”)。你现在应该能够在VS中打断点。

但是,您应该也可以使用具有特定端口的IIS Express,如@Anssssss所述。

+0

我可以使用IIS,但这里的目标是尝试使用IISExpress。 –

+0

你说'断开连接',我认为'取消了对'IIS Express的依赖。对困惑感到抱歉。 – ps2goat

2

我们在这里有同样的问题。两天Google搜索解决方案没有成功。直到现在唯一的解决方案是使用本地IIS选项将网站添加到解决方案。

+0

谢谢,这对我有用。我希望他们能解决它。 –

20

里面的网站部分的绑定部分,创建另外一个新的绑定到本地主机的版本,像这样:

<bindings> 
    <binding protocol="http" bindingInformation="*:21232:localhost" /> 
    <binding protocol="http" bindingInformation="*:21232:*" /> 
</bindings> 

既有线后,VS停止了新的网站部分。

+3

我想我已经查明了这件事情是怎么回事。我的目标是通过本地网络访问我的站点,因此我将编辑标记以将“\ *:port:localhost”更改为“\ *:port:*”Visual Studio在构建Web应用程序项目时搜索包含“*:port:localhost”的项目名称的绑定,并且如果它找不到一个,那么每次构建项目时都会添加一个新条目。因此你的改变使VS在重建后保持正确的设置。 – dhakim

+0

这适用于vs2015。扩展dhakim所说的,它看起来像试图匹配绑定到“Web”部分下属性 – bgura

1

当我在试验VS2013时从一个TFS工作区切换到另一个工作区时,遇到了这个麻烦。我在VS2012的新工作空间中更新了VS2013,然后当我完成并承诺进行更改时,我在原始工作空间中获得了最新版本,并开始在VS2013中使用它。每次我加载我的web项目时,我都会收到关于它编辑我的项目文件的消息,并且每次它都搞砸了设置。

以下是我在尝试其他答案之后修复它的方法。一个糟糕的.csproj.user文件是个问题。我通常不使用这个文件,因为我已经选中了“为所有用户应用服务器设置(存储在项目文件中)”复选框。但我过去曾用过它。删除这个文件,或者更新它,以使设置与我在项目文件中设置的设置相匹配(即设置端口,是否使用IISExpress等)。我现在可以加载我的项目,而不需要在每次加载时将Visual Studio制作(错误的)编辑到我的项目文件中。

+0

下的“Project Url”我有同样的问题,VS在每次打开项目时不断重置SSL端口。最后,事实证明csproj.user文件中的设置导致了这个问题。我删除了该文件,问题已解决。 – kevin

相关问题