JetBrains Rider 能否与 IISExpress 一起正常工作?
Posted
技术标签:
【中文标题】JetBrains Rider 能否与 IISExpress 一起正常工作?【英文标题】:Can JetBrains Rider work properly with IISExpress? 【发布时间】:2019-06-20 08:06:48 【问题描述】:我使用的 JetBrains Rider 是官网的最新版本,2019.1.2(30 天免费试用)。这不是一个损坏的版本。
我有一个包含 ASP.NET Web API csproj 的解决方案。该解决方案在 IIS 或 VS + IISExpress 中正常运行。
和 VS 一样,Rider 也在 .idea 文件夹中创建了一些配置文件。在其中,我可以找到 IISExpress 的 applicationhost.config 文件。
问题是,一旦我在控制台中开始调试,IISExpress 就永远无法启动并显示错误:
**Failed to initialize site bindings**
Error initializing ULATQ. hr = 80070005
Terminating W3_SERVER object
InitComplete event signalled
Process Model Shutdown called
Waiting for all LISTENER_CHANNELS to stop
Unable to start iisexpress.
我检查了 applicationhost.config 文件。和VS生成的一样。它还有绑定信息行,我确定端口可用:
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
问题:Rider 真的可以与 IISExpress 一起正常工作吗?知道如何配置它以及应该更改哪些文件?
【问题讨论】:
关于控制台中的错误信息:我在调试的配置(porgram 参数结束)中添加 /trace:error 参数以查看 IISExpress 详细错误。但似乎仍然不知道发生了什么。 “和vs生成配置一样”,那么你杀掉了所有VS创建的IIS Express进程吗? 是的,我重新启动我的笔记本电脑,并从另一台电脑(已安装 VS)复制“.idea\config\applicationhost.config”文件,它现在也可以工作了。 【参考方案1】:我终于发现,在 Windows 10 中,似乎是权限问题导致 Rider 无法正常启动 IISExpress。
解决方案:
确保以管理员身份运行 JetBrains Rider(对我来说最重要的是,IISExpress 可以工作!)
打开解决方案,右键单击将在 IISExpress 上运行的 Web 项目。
选择Properties
并转到Web
部分。
在第一次运行之前检查Generate applicationhost.config
。
URL 应该是http://locahost:8080/
(8080
可以是任何端口。尚未支持任何 IP。)
选中Anonymous authentication
以允许查看和调试页面。
第一次运行后取消选中Generate applicationhost.config
。
确保 Rider 仍在使用 IISExpress,Properties
和 applicationhost.config
没有任何更改。
只有当 Rider 以管理员身份运行并且Properties
中的设置正确时,IISExpress 才能正常工作。否则,它不会启动或仅返回 HTTP 5XX/4XX。
【讨论】:
当我这样做时,它还会在 .csproj 文件中添加一行,如果我要提交它,它基本上会更新其他所有人的 URL。知道是否有办法解决这个问题吗? 有趣,但我认为以管理员身份运行 IDE 不是一个好主意。【参考方案2】:谢谢@David Smith,我发现 Generate applicationhost.config in edit Configuration iis here
然后发现这个选项就在这里
【讨论】:
以上是关于JetBrains Rider 能否与 IISExpress 一起正常工作?的主要内容,如果未能解决你的问题,请参考以下文章
未找到 JetBrains Rider 的 Xamarin SDK
JetBrains Rider 中 Visual Studio 的“无需调试即可启动”?
更改调试字体颜色 - Serilog C# .NET Core 3.1 Jetbrains Rider Mac OSX