Visual Studio 2015。注册URL以访问站点失败,IIS Express拒绝访问。访问被拒绝0x80070005。

3

我在Visual Studio 2015中启用了SSL,以便在本地实现Facebook和Google登录。

我在项目属性的Web选项卡中更改了项目URL为https://localhost:44300/,并在控制器上使用RequireHttps属性进行了装饰 - 参考@msdn

本地一切正常。

我将设置恢复为HTTP以测试其他内容,但当我尝试返回HTTPS时出现问题。

我发现这个SO问题,并尝试了几乎所有建议的解决方案。

错误详情:

无法为站点“site”应用程序“path”注册URL“url”。 错误描述:访问被拒绝。(0x80070005)。


你应该将答案部分提取出来并接受它。如果你阅读其他帖子,这就是FAQ的格式。 - Lex Li
3个回答

12

我在VS 2015中遇到问题,不得不在DOS中发布这个命令来解决:

netsh http add urlacl url=http://{ip_addr}:{port}/ user=everyone

奇怪的是,只有当我把项目移植到另一台电脑时才需要这样做。在原始电脑上,我不需要它。


2
请注意,*、127.0.0.1和localhost是分别处理的...netsh http delete urlacl url=http://:10001/ netsh http add urlacl url=http://:10001/ user=everyonenetsh http delete urlacl url=http://127.0.0.1:10001/ netsh http add urlacl url=http://127.0.0.1:10001/ user=everyonenetsh http delete urlacl url=http://localhost:10001/ netsh http add urlacl url=http://localhost:10001/ user=everyone - Stefan Steiger
你也可以使用 user=<你的Windows用户名> 而不是 everyone 将只有你的用户添加到 ACL。 - onestep.ua
这对我也起作用了。有人能详细解释一下为什么吗? - Aron Boyette

3
原来,这个问题线程上的同一问题线程答案由Cayne提供,带领我找到了解决方法。
端口更改无法生效,因为位于特定于VS2015的.vs文件夹中的applicationhost.config文件保留了旧端口的Http和Https绑定组合作为默认设置。无论我多少次将端口更改为其他内容,尝试使用Http(只会在配置文件中堵塞大量新的网站绑定),只要我想切换回SSL,它就会以第一个绑定组合结束。它抱怨不能再注册的端口。
一旦我删除了第一个绑定组合,一切都好了。
我希望这能帮助未来的某个人。

0

前往 C:\Users{用户名}\Documents\IISExpress\config 并打开 applicationhost.config 文件。

在文档中搜索 <sites> 标签。您将看到类似以下的一些行。

<site name="WebSite1" id="1" serverAutoStart="true">
    <application path="/">
        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:8080:localhost" />
    </bindings>
</site>

将以下行:<binding protocol="http" bindingInformation="*:8080:localhost" /> 替换为:
<binding protocol="http" bindingInformation="*:{required_port_number}:*" />

我认为你甚至可以删除bindingInformation中的*标记。

然后重新启动IIS服务器(使用任务管理器删除所有与IIS服务器相关的操作,然后转到C:\Program Files\IIS Express文件夹并运行iisexpress.exe:您可能需要以管理员身份运行)。

控制台将打开,如果一切顺利,将显示以下行。

成功为网站"Website1"应用程序"/"注册URL"http://*:{required_port_number}/"

还要在浏览器中检查所需的URL是否现在可用。

这是一个非常有用的资源...


FYI,Visual Studio 现在将在文件夹 .vs/$solution/config 中创建一个 iis express 配置文件,并在启动网站时将该文件作为参数传递。 - Jeremy Lakeman

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