【发布时间】: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
我想在从 Visual Studio 调试时更改我的网站运行的端口号。我正在使用 Visual Studio 2012,并且我正在为我想要更改端口的项目使用 ASP.NET MVC 4。随机端口或固定任何人都会工作只是想更改端口。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 visual-studio-2012 iis-express
为使用 IIS Express 的 Web 应用程序项目指定端口
在解决方案资源管理器中,右键单击应用程序的名称,然后选择属性。 点击网络标签。
在服务器部分的使用本地 IIS Web 服务器下,在项目 URL 框中更改端口号。
在项目 URL 框的右侧,单击创建虚拟目录,然后单击确定。
在“文件”菜单中,单击“保存所选项目”。
要验证更改,请按 CTRL+F5 运行项目。 新的端口号出现在浏览器的地址栏中。
来自How to: Specify a Port for the Development Server(archive.org备份here)。
【讨论】:
这是一种更手动的方法,适用于 网站 项目和 Web 应用程序 项目。 (您不能在 Visual Studio for Website 项目中更改项目 URL。)
Web 应用程序项目
在解决方案资源管理器中,右键单击项目并单击卸载项目。
导航到 IIS Express ApplicationHost.config 文件。默认情况下,此文件位于:
%userprofile%\Documents\IISExpress\config
在最近的 Visual Studio 版本和 Web 应用程序项目中,此文件位于 [Solution Dir]\.vs\config\applicationhost.config 下的解决方案文件夹中(注意 .vs 文件夹是隐藏项)
在文本编辑器中打开 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”打开您的网站
在解决方案资源管理器中,右键单击项目并单击重新加载项目。
在解决方案资源管理器中,右键单击项目并选择属性。
选择 Web 选项卡。
在“服务器”部分的“使用本地 IIS Web 服务器”下的“项目 URL”框中,输入与您之前在 ApplicationHost.config 文件中输入的主机名和端口相匹配的 URL。
在项目 URL 框的右侧,单击创建虚拟目录。如果您看到成功消息,则说明您已正确完成这些步骤。
在“文件”菜单中,单击“保存所选项目”。
网站项目
在解决方案资源管理器中,右键单击项目名称,然后单击删除或删除;不用担心,这会从您的解决方案中删除项目,但不会删除磁盘上的相应文件。
按照上面的步骤 2 进行 Web 应用程序项目。
在解决方案资源管理器中,右键单击解决方案,选择添加,然后选择现有网站...。在“添加现有网站”对话框中,确保选中“本地 IIS”选项卡。在 IIS Express 站点下,选择您已更改端口号的站点,然后单击确定。
现在您可以从新主机名/端口访问您的网站。
【讨论】:
对于那些在 .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 才能使其工作。
【讨论】:
ProductAgentService.exe 服务使用了与 IIS Express 的默认端口冲突的端口 50151。
右键单击您的 MVC 项目。转到属性。转到“网络”选项卡。
更改项目 URL 中的端口号。例子。 本地主机:50645
将粗体数字 50645 更改为其他任何值都会更改站点运行的端口。
按创建虚拟目录按钮完成该过程。
另请参阅:http://msdn.microsoft.com/en-us/library/ms178109.ASPX
图像显示了 MVC 项目的 Web 选项卡
【讨论】:
如果您只想更改端口,因为它已在使用中。请按照以下步骤操作。
在 Visual Studio 中
Unload Project
<DevelopmentServerPort>62140</DevelopmentServerPort> <DevelopmentServerVPath></DevelopmentServerVPath> <IISUrl>http://localhost:62116/</IISUrl>
它可以通过随机选择另一个端口来工作。
更多信息。请click
【讨论】:
对那些安装了 IIS 的人的另一个修复:
在 IIS 服务器上创建一个路径,并在那里分配您的网站/应用程序。
转到资源管理器解决方案的属性,然后在使用 Visual Studio 中的 iisexpress 之前,将其设置为使用您个人自己的 IIS。
【讨论】:
您可以先从命令行启动 IIS express 并使用 /port:port-number 给它一个端口 见other options。
【讨论】:
如果我们谈论的是网站,而不是网络应用程序,我的问题是实际的 .sln 文件夹位于网站之外的其他位置,而我没有注意到。查找 .sln 路径,然后查找 .vs(隐藏)文件夹。
【讨论】:
对于旧的网站项目,您需要修改解决方案文件中的端口,找到类似于下面的部分并更改“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
【讨论】:
对于网络项目:
【讨论】:
我在 VS2017 上的 WCF 项目上遇到了同样的问题。当我调试时,它会出现无法获取元数据之类的错误,但事实证明该端口已被其他进程使用。我从这里得到了一些想法,最后弄清楚了端口的存放位置。有2个地方: 1. C:...到您的解决方案文件夹....vs\config\applicationhost.config。在里面,您可以找到您调试的站点。在 下,删除有端口问题的。 2. C:...到您的项目文件夹...\,您将看到一个带有 ProjectName.csproj.user 的文件。删除此文件。
所以,关闭解决方案,删除上面提到的和用户文件,然后重新打开解决方案,VS 将为该站点找到另一个合适的端口。
【讨论】:
我正在使用 VS 2019。
如果您的解决方案有多个项目/类库等,则单击解决方案资源管理器属性时可能看不到 Web 选项卡。
单击 MVC 项目,然后检查属性将显示 Web 选项卡,您可以在其中更改端口。
【讨论】:
使用记事本等编辑器编辑 .sln 文件。
用新端口替换所有端口。
【讨论】:
使用默认端口在 IIS 中部署您的应用程序。尝试使用 Visual Studio 对其进行调试。这是一个很好的做法。如果您使用 Visual Studio,它会在大多数情况下不断更改端口号。所以最好先在 IIS 中部署应用程序,然后在 Visual Studio 中打开它并调试它。
【讨论】: