Visual Studio 无法启动程序,访问被拒绝。

4
当我尝试调试一个ASP.NET MVC应用时,出现“无法启动程序http://localhost:[port]访问被拒绝。”以下是一些更多的细节,其中有些可能不相关。
这在该项目的某种不同的上下文中发生。最近我在网络上获得了一个提升的账户,所以每次启动VS 2017(15.5.4)时,我都会以管理员身份运行它,以便可以访问TFS服务器。在此之前,我一直使用我的非提升帐户离线工作,并将代码更改传递给另一位开发人员进行TFS检查。我仍然使用我的非提升帐户登录本地PC(Windows 10)。我只是以管理员身份启动VS,并在提示时输入提升帐户的凭据。
今天早上是我首次在这个新环境下运行VS,获取最新的代码并尝试做一些工作。我必须删除一个现有的TFS工作区,但我确实从TFS获得了完整的代码刷新。
第一次在这个新的上下文中F5代码时,我收到了一个关于应用程序使用SSL并且VS想要自签名证书的警告。我选择了是。我忘记了那时发生了什么,我想浏览器(Firefox)在尝试连接时超时了。无论如何,我尝试了不同的浏览器(Chrome),但仍然没有成功。
现在,无论我按+, , 或者 , 我都很快地收到了上面的消息“无法启动程序...”我已经搜索了很多关于这个问题的解决方案,但是没有任何进展。以下是我尝试过的:
清理构建并进行全新的重建。构建工作正常,没有问题。
使用netsh查找(和删除)URL保留。没有。
尝试使用不同的端口。
删除临时asp.net文件。
在VS中关闭JavaScript调试选项。
Crtl+F5,没有调试器。
为项目关闭SSL。
检查web.config中是否启用了Windows身份验证。
使用Process Monitor查找任何对devenv.exe或iisexpress.exe的“访问被拒绝”。
所以我希望的不是一枚银弹(虽然那会很好),而更多的是一些故障排除方面的帮助。访问被拒绝意味着某些资源——文件、注册表设置、网络共享或其他——在我的运行环境中无法访问。我希望确切的信息已经被记录在某个地方。当你遇到问题时,VS会写入哪些日志文件?我查看了构建过程中的输出,但没有发现任何信息。
我相信我还没有用尽所有的故障排除资源,我只需要知道该去哪里寻找帮助。此外,我必须离开那个项目/网站前往另一个地方,所以我最早要到明天才能尝试你们提出的任何想法。

你有没有其他东西在使用同一个端口? - Owen Pauling
不,我不这么认为。它应该是26982或类似的数字。今天早上所有的工作都是在重新启动机器后进行的,因此很少有旧进程仍然占用了端口。再说一遍,我现在在另一个地方,所以当我回到那里时可以进行更多的检查。 - John Chase
你尝试在VS中为应用程序设置默认页面了吗? - erikrunia
不,我还没有试过。我也会尝试一下。虽然我刚刚和另一个有时在那个其他环境工作的开发人员交谈过,他说他曾经遇到过这个问题,可能与注册表设置有关,可能与FIPS有关...这让我想起了几年前的事情。 - John Chase
2个回答

0
请看一下这些答案在一个类似的问题中。从您提供的列表中,似乎有一些是新的尝试方法,可以用于您的情况。
具体来说,在那个链接的问题中,我遇到了以下答案,它们在我职业生涯的不同阶段都起作用:
  • 如果您使用匿名身份验证,IIS 7将使用“IUSR”帐户进行目录访问(除非您已将其设置为使用应用程序池标识)。如果您没有在站点的文件夹和文件上授予IUSR足够的权限,则会出现此错误。
  • 对于我来说,在Windows 7中,只有在我为两个用户的站点文件夹授予“读取和执行”、“列出文件夹内容”、“读取”权限后,它才开始工作

    • IUSR
    • NETWORK SERVICE
  • 我遇到了同样的问题,我启用了“匿名身份验证”,但仍然无法正常工作。所以我还启用了“表单身份验证”,然后它就可以正常工作了。(也可以尝试Windows身份验证)
  • 对我来说,除了以下解决方法外,其他都不起作用:打开IIS,选择站点,打开身份验证(在IIS部分),右键单击匿名身份验证并选择编辑,选择应用程序池标识。
  • 我给“IIS_IUser”授予了访问权限,但实际上应该是“IUSR”。这解决了问题。

好的,我回去后会看一下这个。但我的第一反应是它可能并不相关,至少表面上是这样,因为我的问题是特定于在VS内部的调试会话中运行它,所以它使用iisexpress。(谷歌搜索...)有趣。这个链接提供了一些关于配置IIS Express的见解,它似乎是用户特定的。 - John Chase
我理解你的想法,但根据我的经验,“相关性”并不总是在Microsoft产品及其相关的错误消息中起作用。祝你找到你想要的! - erikrunia

0
我有一个与你非常相似的问题,我的架构使用Windows身份验证,对我有效的方法是选择我的项目并转到属性。然后在Windows身份验证上选择“启用”。

enter image description here


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