ASP.NET Core 1.0: Deploy to IIS

尽管ASP.NET最新的官方文档记录了如何Deploy to IIS,但是实际操作起来依旧磕磕绊绊。官方文档地址:https://docs.asp.net/en/latest/publishing/iis.html

官方文档其实还详细地介绍了使用Visual Studio来做Deploy,但可惜,一样语焉不详:https://docs.asp.net/en/latest/publishing/iis-with-msdeploy.html


谨将deploy过程遇到的问题以及步骤一一摘录如下,以为备考:

  1. 使用环境:
    服务器版本:Windows 2012 R2
    IIS版本是8.5。
    Visual Studio版本 2015 Update 2
    ASP.NET Core 1.0 R2。
  2. [问题] IIS Management中右键菜单中的Deploy项消失。
    原因是:没有安装Web Deploy。
    解决方案:安装Web Deploy 3.6。
  3. 在IIS Management创建一个Website,确保basic setting把.Net CLR Version选择为No Managed Codes。
    原因:ASP.NET Core 1.0是self host的程序。之所以还需要deploy to IIS,只是复用IIS的进程管理罢了。就是利用IIS的进程管理,然后在IIS和ASP.NET Core 的Host进程之间进行了Proxy的转换,这个过程不需要CLR,所以需要选择No Managed Code。
  4. 有了Web Deploy,可以Config Web Deploy Publishing了。
    原因:这一步主要用来生成.publishsettings文件,用以在Visual Studio中Import。
  5. 然后使用Visual Studio来Publish Project了,选择Import,并选择上一步生成的Publishsetting文件。然后问题来了,始终报错unauthorized的错误,即便user都已经在IIS中安装并设置了。
    原因:不明。
    解决方案:卸载Web Deploy 3.6,安装Web Deploy 3.5。我也不知道为啥,跟随Stacksoverflow的先知们的脚步,成功了。也表问我,如果第二步直接安装Web Deploy 3.5会如何,我也试过,不知道。
  6. 权限过了,Visual Studio自动生成的PS1文件也运行成功,但是网站死活打不开。使用localhost:XXXX(XXXX是binding的端口号),但通过局域网却无法访问。
    原因:没有设置port;
    解决方案:Control Panel > Windows Firewall,添加额外的Inbound rule,指定对应的port。


是为之记。

Alva Chien
2016.5.25
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值