我使用IIS Express设置VS2013以使用自定义域,如下所示:
http://mydomain.local
https://mydomain.local
端口80 url工作得很好,端口443不工作(错误请求,页面无法显示,也就是站点不存在)。
为什么吗
显然,IIS Express正在努力使用此名称映射或使用端口443,但为什么?
对ApplicationHost.config:
<site name="MyDomain" id="16">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\Projects\MyDomain" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:MyDomain.local" />
<binding protocol="https" bindingInformation="*:443:MyDomain.local" />
</bindings>
</site>
托管文件:
127.0.0.1 MyDomain.local
VS项目属性:
启动网址,项目网址和覆盖应用程序根网址均为https://MyDomain.local
。
单击Create Virtual Directory
会导致NO错误,因为它对applicationhosts.config中的配置感到满意。
注意:仅使用上述设置,http://mydomain.local
(端口80)工作正常!
此外,查看项目节点上的属性窗口,所有设置都符合预期:
SSL Enabled: True
SSL URL: https://mydomain.local
URL: http://mydomain.local
另外,在任务栏中查看IIS Express,它们分别按预期显示为443和80.
去忍者:
它不应该是必要的(似乎http://如何在不这样做的情况下工作),但为了确保URL已注册,我为此运行了netsh:
netsh http add urlacl url=https://MyDomain.local:443/ user=Everyone
这当然导致错误&#34; ...已经存在&#34;。那么我就跑了:
netstat -o
TCP 127.0.0.1:80 mydomain:2063 ESTABLISHED 4
TCP 127.0.0.1:2063 mydomain:http ESTABLISHED 2276
...
我看到没有在443端口露营。不,Skype没有安装在这台机器上! (一个常见的问题)。
我完全失去了。有没有搞错?这不是火箭科学。
环境:
其他信息:
我已经像疯了一样研究过这个。关于Stack Overflow和其他地方的许多文章。这里只是几个主要的:
Using Custom Domains With IIS Express
和 http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
我已经尝试了我能看到的所有合乎逻辑的事情。对于我提出的问题,解决方法是设置我刚才描述的所有设置。由于这不起作用,它需要一个自己的帖子!
我错过了什么?
答案 0 :(得分:2)
根据下面的链接博客,您需要将证书绑定到端口443. IIS Express已将端口44300到44399绑定到本地证书以进行本地https开发。
我还没有尝试过,但是(本节的底部)本博客显示了如何将端口443绑定到IISExpress用于端口44300到44399的现有本地证书。
Run IISExpress on port 443 using SSL and wildcard subdomains