【发布时间】:2023-04-06 16:20:01
【问题描述】:
当我为 Visual Studio 创建新项目时,只需复制现有项目并修改项目/解决方案/配置文件,而不是剪切和粘贴一大堆文件,然后必须设置每个的构建操作。
这很好用,除了 IIS 调试设置。
如果我让它们保持不变,那么我一次只能调试一个项目,因为端口将被使用。
但是,如果我更改 launchSettings.json 中的端口(我使用的是 Asp Net Core,所以 Kestrel 有一个端口,还有一个 SSL 端口),没有任何效果。我现在处于这种情况,复制了一个项目并将两个端口号更改为新的随机端口,并且在有问题的项目中,当从菜单中选择“不调试就开始”时,我什至没有启动网络服务器(虽然我确实有一个浏览器)。
在一个由 VS 创建的项目中,我至少得到了一个由“ASP NET Core Web 服务器”启动的新输出窗口,其中包含 Kestrel 输出。
我很欣赏 VS 可能需要做一些事情,比如注册一个自签名 SSL 证书,可能还需要修改 IIS Express 设置文件,但如果能够自己做这些事情会很好。
我已尝试删除解决方案 .vs 文件夹并查看 Windows Documents 文件夹中的 IIS Express 文件夹(其中似乎没有任何项目/解决方案特定的内容)。
这是launchSettings.json(我所做的只是更改端口号和项目配置文件名称,例如 My_AspMvc)
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost: 62649/",
"sslPort": 44315
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost: 44315/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"My_AspMvc": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost: 62649/"
}
}
}
这是设置:
更新:看起来另一个密钥文件是[SolutionFolder]\.vs\config\applicationhost.config:
<site name="My_AspMvc" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Projects\MySoln\My_AspMvc" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:62649:localhost" />
<binding protocol="https" bindingInformation="*:44315:localhost" />
</bindings>
</site>
谜题的两个重要元素:
如果您创建一个新的 ASP NET Core 项目,启动它,然后将 SSL 端口复制到您现有的项目中,该端口将从那时起工作。它显然是在系统全局的某个地方注册的。如果不创建新项目,端口将无法工作。
请注意,模拟整个过程的一种简单方法是在现有的工作进程中打开
launchSettings.json,并将 SSL 端口号随机更改几位数。它不会起作用。
【问题讨论】:
-
“但能自己做这些事情就好了”正是微软不喜欢的。涉及很多设置,docs.jexusmanager.com/tutorials/vs-diagnostics.html 所以除非你真的是各个方面的专家,否则你应该面临很多问题。 VS 2019 可能能够通过强制同步自动解决一些问题,但 VS 2017 可能不会。
-
如果有的话,我可以使用官方工具或 API 进行复制。这是一个典型的用例,我相信很多开发人员都会这样做。它相当于 VS 在您创建项目时为您提供的启动模板。但是出于我的目的,它确实需要从命令行工作。
-
恕我直言,既没有官方工具也没有 API 可以真正帮助您使用 IIS Express/IIS 设置配置 VS 项目。
-
嗨 Ben,既然您已经找到了您的问题的答案,请考虑标记您的答案,这将有助于其他社区成员搜索类似问题。提醒一下:)
标签: visual-studio asp.net-core iis-express visual-studio-debugging