绑定域名
Visual Studio调试C# ASP.NET项目时使用IIS Express启动服务器,默认情况只能绑定localhost,使用以下方法可以绑定任意ip或域名。可以绑定真实域名、添加证书,将DNS解析至局域网地址,局域网内可进行真实域名下的接口调试。
修改IIS Express绑定的域名和端口
在项目运行后,右键状态栏上的IIS Express图标,点击显示所有应用程序,

可见当前web程序绑定的主机名和端口,我这里已经添加了绑定,所有会显示两个。

点击任意一个,再点击
配置后的文件路径,进入编辑。找到site标签下的设置
<site name="www(1)" id="3">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="D:\workplace\建设期版\HRTL_003" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:49177:localhost" />
<binding protocol="https" bindingInformation="*:44333:f.hrtl.com.cn" />
</bindings>
</site>
在bindings中添加一个
<binding protocol="https" bindingInformation="*:44399:f.hrtl.com.cn" />
值得注意的是IIS Express仅支持绑定44300-44399范围内的端口以开启SSL。
保存文件后,重启项目。
添加证书
先将证书安装到系统中,可以走IIS中安装证书的流程。
然后将证书与端口绑定
netsh http add sslcert ipport=0.0.0.0:44333 appid='{<APPID>}' certhash=<证书ID>
<APPID>仅用于唯一标识一条绑定,可以自己生成一个GUID来使用,获取一个GUID:[guid]::NewGuid()。appid要用单引号和大括号'{}'包裹,例如'{31e5ef34-93f1-419c-9ab5-24584d0fc0d6}'<证书ID>证书指纹查看方式:控制面板 -> 管理用户证书
如果绑定时提示:
未能添加 SSL 证书,错误: 183 当文件已存在时,无法创建该文件。表示这个端口上已有ssl绑定记录,可能是IIS Express自动添加的。
查看所有端口的绑定情况:netsh http show sslcert删除某个端口的绑定记录:
netsh http delete sslcert ipport=0.0.0.0:44333
允许外部访问
终端管理员依次执行
netsh http add urlacl url=网站绑定的URL user="NT AUTHORITY\INTERACTIVE"
netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=网站绑定的端口 profile=private remoteip=localsubnet action=allow
如果提示
添加 URL 保留项失败,错误: 183 当文件已存在时,无法创建该文件。则先使用命令删除
netsh http delete urlacl url=网站绑定的URL再使用第一条命令添加


