关于ssl:Visual Studio2015。无法注册URL进行站点访问被IIS Express拒绝。 拒绝访问0x80070005

Visual Studio 2015. Failed to register URL for site access is denied IIS Express. Access denied 0x80070005

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

我将项目属性的" Web"选项卡中的项目URL更改为https:// localhost:44300 /,并用RequireHttps属性装饰了控制器-ref @msdn。

本地一切正常。

我将设置恢复为HTTP来测试其他内容,这在尝试返回HTTPS时导致了一个问题。

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

错误详情:

Failed to register URL"url" for site"site" application"path".
Error description: Access is denied. (0x80070005).


我必须在DOS中发出此命令来解决VS 2015中的问题:

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

奇怪的是,仅当我将项目移至另一台PC时才需要。在原始PC上,我不需要它。


原来在Cayne的同一个问题线程上,这个答案非常正确,这使我想到了解决方案。

端口更改不起作用,因为位于VS2015特定的.vs文件夹中的applicationhost.config文件将Http和Https的旧端口绑定组合保留为默认设置。尝试使用Http时,无论我将端口更改为其他内容的次数(配置文件中只有大量新网站绑定都被阻塞),只要我想切换回SSL,它都会以第一个绑定组合结束。它抱怨的端口不能再注册。

一旦删除了第一个绑定组合,一切都很好。

我希望这会在将来对某人有所帮助。


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

在文档中搜索标记。您将看到一些类似于以下内容的行。

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

替换行,如下所示。

1
<binding protocol="http" bindingInformation="*:{required_port_number}:*" />

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

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

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

Successfully registered URL"http://*:{required_port_number}/" for site"Website1" application"/"
...

另外,在浏览器中检查所需的URL是否现在可以正常工作。

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