【问题标题】:How can I change IIS Express port for a site如何更改站点的 IIS Express 端口
【发布时间】:2014-01-18 10:31:28
【问题描述】:

我想在从 Visual Studio 调试时更改我的网站运行的端口号。我正在使用 Visual Studio 2012,并且我正在为我想要更改端口的项目使用 ASP.NET MVC 4。随机端口或固定任何人都会工作只是想更改端口。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 visual-studio-2012 iis-express


    【解决方案1】:

    为使用 IIS Express 的 Web 应用程序项目指定端口

    1. 在解决方案资源管理器中,右键单击应用程序的名称,然后选择属性。 点击网络标签。

    2. 在服务器部分的使用本地 IIS Web 服务器下,在项目 URL 框中更改端口号。

    3. 在项目 URL 框的右侧,单击创建虚拟目录,然后单击确定。

    4. 在“文件”菜单中,单击“保存所选项目”。

    5. 要验证更改,请按 CTRL+F5 运行项目。 新的端口号出现在浏览器的地址栏中。

    来自How to: Specify a Port for the Development Server(archive.org备份here)。

    【讨论】:

    • 这不适用于网站。仅适用于 Web 应用程序项目。
    • 这里没有 Web 选项卡...您会认为在 2017 年,这将不再是问题。或者至少我们应该能够更改端口而无需做任何魔术
    • Visual Studio 2015 不存在选项(ASP.NET 空网站).. 如何制作?
    • 我一直在做这一切,除了单击创建虚拟目录按钮。这样做会有所不同;现在它可以工作了。但为什么有必要呢?
    • 如果你这样做,你不再使用 IIS Express,而是使用本地 IIS。因此,只需转到项目属性中的 Web 选项卡,然后将端口编辑为您需要的任何内容。
    【解决方案2】:

    这是一种更手动的方法,适用于 网站 项目和 Web 应用程序 项目。 (您不能在 Visual Studio for Website 项目中更改项目 URL。)

    Web 应用程序项目

    1. 在解决方案资源管理器中,右键单击项目并单击卸载项目。

    2. 导航到 IIS Express ApplicationHost.config 文件。默认情况下,此文件位于:

      %userprofile%\Documents\IISExpress\config

      在最近的 Visual Studio 版本和 Web 应用程序项目中,此文件位于 [Solution Dir]\.vs\config\applicationhost.config 下的解决方案文件夹中(注意 .vs 文件夹是隐藏项)

    3. 在文本编辑器中打开 ApplicationHost.config 文件。在<sites> 部分中,搜索您的站点名称。在您网站的<bindings> 部分,您将看到如下元素:

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

      将端口号(上例中为 56422)更改为您想要的任何值。例如:

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

      奖励:您甚至可以绑定到不同的主机名并做一些很酷的事情,例如:

      <binding protocol="http" bindingInformation="*:80:mysite.dev" />

      然后在您的hosts 文件中将mysite.dev 映射到127.0.0.1,然后从“http://mysite.dev”打开您的网站

    4. 在解决方案资源管理器中,右键单击项目并单击重新加载项目。

    5. 在解决方案资源管理器中,右键单击项目并选择属性。

      • 选择 Web 选项卡。

      • 在“服务器”部分的“使用本地 IIS Web 服务器”下的“项目 URL”框中,输入与您之前在 ApplicationHost.config 文件中输入的主机名和端口相匹配的 URL。

      • 在项目 URL 框的右侧,单击创建虚拟目录。如果您看到成功消息,则说明您已正确完成这些步骤。

      • 在“文件”菜单中,单击“保存所选项目”。

    网站项目

    1. 在解决方案资源管理器中,右键单击项目名称,然后单击删除或删除;不用担心,这会从您的解决方案中删除项目,但不会删除磁盘上的相应文件。

    2. 按照上面的步骤 2 进行 Web 应用程序项目。

    3. 在解决方案资源管理器中,右键单击解决方案,选择添加,然后选择现有网站...。在“添加现有网站”对话框中,确保选中“本地 IIS”选项卡。在 IIS Express 站点下,选择您已更改端口号的站点,然后单击确定。

    现在您可以从新主机名/端口访问您的网站。

    【讨论】:

    • 太棒了,正是需要的。不得不四处寻找工作港口,但这成功了,谢谢。
    • 谢谢赛博。这完美地工作。需要注意的一点......我正在使用源代码管理,在添加我的网站项目后,我必须转到文件 > 源代码管理 > 高级 > 更改源代码管理并将我的项目重新绑定到我的源代码管理服务器。这只是意味着在列表中选择项目并单击“刷新”旁边的“绑定”按钮。感谢您的出色回答。
    • 很好的答案 - 您可以选择“改为卸载项目”,而不是“右键单击项目名称,然后单击删除或删除”,然后再次编辑您的 applicationhost.config,我的是在“\.vs\config\applicationhost.config"(注意 .vs 文件夹是一个隐藏项目,因此请选择在文件资源管理器中显示隐藏文件的选项)
    • @PaulGorbas 很高兴它对您有所帮助。请注意,您不能“卸载”网站,这仅适用于 Web 应用程序。
    • 如何使其适用于自定义 SSL 端口?对于除 60233 之外的任何端口,我在 Internet Explorer 中都会收到“无法显示此页面”,在其他 Web 浏览器中也会收到类似的消息。在 Windows 7 的哪个位置指定 SSL 端口?
    【解决方案3】:

    .Net 核心

    对于那些在 .Net core 中寻找此配置的人,此配置位于 Properties\lauchSettings.json。只需在属性"applicationUrl" 中编辑端口即可。

    文件应如下所示:

    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://localhost:53950/", //Here
          "sslPort": 0
        }
      },
      "profiles": {
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "launchUrl": "index.html",
          "environmentVariables": {
            "Hosting:Environment": "Development"
          },
        }
      }
    }
    

    或者您可以通过双击项目的“属性”来使用 GUI。

    注意:我必须重新打开 VS 才能使其工作。

    【讨论】:

    • 出色的答案。重新启动 VS 对我有用。显然 BitDefender 的 ProductAgentService.exe 服务使用了与 IIS Express 的默认端口冲突的端口 50151。
    • SSL 端口限制为 44300-44399。很高兴知道。
    【解决方案4】:

    右键单击您的 MVC 项目。转到属性。转到“网络”选项卡。
    更改项目 URL 中的端口号。例子。 本地主机:50645
    将粗体数字 50645 更改为其他任何值都会更改站点运行的端口。
    按创建虚拟目录按钮完成该过程。

    另请参阅:http://msdn.microsoft.com/en-us/library/ms178109.ASPX

    图像显示了 MVC 项目的 Web 选项卡

    【讨论】:

      【解决方案5】:

      如果您只想更改端口,因为它已在使用中。请按照以下步骤操作。

      在 Visual Studio 中

      1. 右键单击项目节点并选择Unload Project
      2. 右键单击项目节点并编辑 .csproj 文件。
      3. 搜索以下标签并将其删除
      <DevelopmentServerPort>62140</DevelopmentServerPort>
      <DevelopmentServerVPath></DevelopmentServerVPath>
      <IISUrl>http://localhost:62116/</IISUrl>
      
      1. 按Ctrl + S保存文档
      2. 右键单击项目节点并加载项目

      它可以通过随机选择另一个端口来工作。

      更多信息。请click

      【讨论】:

        【解决方案6】:

        对那些安装了 IIS 的人的另一个修复:

        在 IIS 服务器上创建一个路径,并在那里分配您的网站/应用程序。

        转到资源管理器解决方案的属性,然后在使用 Visual Studio 中的 iisexpress 之前,将其设置为使用您个人自己的 IIS。

        【讨论】:

          【解决方案7】:

          您可以先从命令行启动 IIS express 并使用 /port:port-number 给它一个端口 见other options。

          【讨论】:

            【解决方案8】:

            如果我们谈论的是网站,而不是网络应用程序,我的问题是实际的 .sln 文件夹位于网站之外的其他位置,而我没有注意到。查找 .sln 路径,然后查找 .vs(隐藏)文件夹。

            【讨论】:

              【解决方案9】:

              对于旧的网站项目,您需要修改解决方案文件中的端口,找到类似于下面的部分并更改“VWDPort”属性

              Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "My Website", "My Website\", "{871AF49A-F0D6-4B10-A80D-652E2411EEF3}"
                  ProjectSection(WebsiteProperties) = preProject
                      SccProjectName = "<Project Location In Database>"
                      SccAuxPath = "<Source Control Database>"
                      SccLocalPath = "<Local Binding Root of Project>"
                      SccProvider = "Mercurial Source Control Package"
                      TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.7.2"
                      ProjectReferences = "{41176de9-0c21-4da1-8532-4453c9cbe289}|My.CommonLibrary.dll;{f1fda4e5-0233-458e-97b8-381bdb38a777}|My.Ajax.dll;{e756176c-9cd1-4dac-9b2d-9162b7554c70}|My.WEB.API.Domain.dll;{7A94A6C8-595B-43CF-9516-48FF4D8B8292}|My.WEB.API.Common.dll;{790654F2-7339-472C-9A79-9E36837571A0}|My.Api.dll;{25aa245b-89d9-4d0c-808d-e1817eded876}|My.WEB.API.DAL.dll;{cc43d973-6848-4842-aa13-7751e655966d}|My.WEB.API.BLL.dll;{41591398-b5a7-4207-9972-5bcd693a9552}|My.FacialRecognition.dll;"
                      Debug.AspNetCompiler.VirtualPath = "/My Website"
                      Debug.AspNetCompiler.PhysicalPath = "My Website\"
                      Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\My Website\"
                      Debug.AspNetCompiler.Updateable = "true"
                      Debug.AspNetCompiler.ForceOverwrite = "true"
                      Debug.AspNetCompiler.FixedNames = "false"
                      Debug.AspNetCompiler.Debug = "True"
                      Release.AspNetCompiler.VirtualPath = "/My Website"
                      Release.AspNetCompiler.PhysicalPath = "My Website\"
                      Release.AspNetCompiler.TargetPath = "PrecompiledWeb\My Website\"
                      Release.AspNetCompiler.Updateable = "true"
                      Release.AspNetCompiler.ForceOverwrite = "true"
                      Release.AspNetCompiler.FixedNames = "false"
                      Release.AspNetCompiler.Debug = "False"
                      VWDPort = "3883"
                      SlnRelativePath = "My Website\"
                  EndProjectSection
                  ProjectSection(ProjectDependencies) = postProject
                      {C3A75E14-1354-47CA-8FD6-0CADB80F1652} = {C3A75E14-1354-47CA-8FD6-0CADB80F1652}
                  EndProjectSection
              EndProject
              

              【讨论】:

                【解决方案10】:

                对于网络项目:

                1. 关闭 Visual Studio
                2. 使用文本编辑器(如 sublime)打开解决方案根目录中的 [projectName].sln
                3. 搜索您当前的端口号,您将找到 5 个实例
                4. 用新的端口号替换它们并保存文件
                5. 删除解决方案根目录下的.vs文件
                6. 启动 Visual Studio,然后将再次创建 .vs 文件。运行 Web 项目,它将从新端口开始

                【讨论】:

                  【解决方案11】:

                  我在 VS2017 上的 WCF 项目上遇到了同样的问题。当我调试时,它会出现无法获取元数据之类的错误,但事实证明该端口已被其他进程使用。我从这里得到了一些想法,最后弄清楚了端口的存放位置。有2个地方: 1. C:...到您的解决方案文件夹....vs\config\applicationhost.config。在里面,您可以找到您调试的站点。在 下,删除有端口问题的。 2. C:...到您的项目文件夹...\,您将看到一个带有 ProjectName.csproj.user 的文件。删除此文件。

                  所以,关闭解决方案,删除上面提到的和用户文件,然后重新打开解决方案,VS 将为该站点找到另一个合适的端口。

                  【讨论】:

                    【解决方案12】:

                    我正在使用 VS 2019。

                    如果您的解决方案有多个项目/类库等,则单击解决方案资源管理器属性时可能看不到 Web 选项卡。

                    单击 MVC 项目,然后检查属性将显示 Web 选项卡,您可以在其中更改端口。

                    【讨论】:

                      【解决方案13】:

                      使用记事本等编辑器编辑 .sln 文件。

                      用新端口替换所有端口。

                      【讨论】:

                      • 如果您在 VS2019 中使用旧式网站项目(即用于 ASP 经典文件),这是一个有效的解决方案。您必须编辑解决方案文件,因为没有其他属性页。我的项目在 sln 文件中看起来像这样。项目(“{E24C65DC-7377-472B-9ABA-BC803B73C61A}”)=“MyWebSitePrj”,“localhost:50194”,“{BC30BA4B-1D1D-48D0-B1E8-86CBD64611B5}”
                      【解决方案14】:

                      使用默认端口在 IIS 中部署您的应用程序。尝试使用 Visual Studio 对其进行调试。这是一个很好的做法。如果您使用 Visual Studio,它会在大多数情况下不断更改端口号。所以最好先在 IIS 中部署应用程序,然后在 Visual Studio 中打开它并调试它。

                      【讨论】:

                      • 亲爱的马克,我认为你没有仔细阅读这个问题!
                      • 此外,直接针对 IIS 进行开发并不是一个好习惯。这篇 MSDN 文章解释了在开发时何时应该使用 IISExpress、IIS 或外部服务器。 msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx
                      猜你喜欢
                      • 1970-01-01
                      • 2013-10-19
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多