JetBrains Rider能够正常与IISExpress配合使用吗?

11
我使用的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正常工作吗?有什么配置方法和需要更改的文件吗?

关于控制台中的错误信息:我在调试配置(程序参数的末尾)中添加了/trace:error参数以查看IISExpress详细错误,但似乎仍然不知道发生了什么。 - David Smith
"the same as vs generate config",那么您是否已经终止了由VS创建的所有IIS Express进程? - Lex Li
是的,我重启了我的笔记本电脑,并从另一台已安装VS的PC上复制了“.idea\config\applicationhost.config”文件,现在它也可以工作了。 - David Smith
2个回答

20

我最终发现,在Windows 10中,似乎存在一个权限问题,阻止了Rider正确启动IISExpress。

解决方案:

  1. 确保以管理员身份运行JetBrains Rider(对我来说最重要的是这一点,然后IISExpress就可以工作了!)

  2. 打开解决方案,右键单击将在IISExpress上运行的Web项目。

  3. 选择 属性 并转到 Web 部分。

  4. 在首次运行之前勾选 生成applicationhost.config

  5. URL应为 http://locahost:8080/8080 可以是任何端口号。目前不支持任何IP地址。)

  6. 勾选 匿名身份验证 以允许查看和调试页面。

  7. 在第一次运行之后取消勾选 生成applicationhost.config 。确保Rider在没有更改 属性applicationhost.config 的情况下仍然可以与IISExpress正常工作。

只有当Rider以管理员身份运行且在 Properties 中设置正确时,IISExpress才能正常工作。否则,它将无法启动或仅返回HTTP 5XX/4XX。


当我这样做时,它还会在.csproj文件中添加一行,如果我提交它,它实际上会更新其他人的URL。有什么办法可以避免这种情况吗? - nathanjw
1
有趣,但我认为以管理员身份运行IDE不是一个好主意。 - steinar

0

谢谢 @David Smith,我在这里找到了生成 applicationhost.config 的编辑配置 iis

enter image description here

然后在这里找到这个选项

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接