我正在用的 dotnet core 版本为 1.0。 预先在 windows 2008 r2 上安装 iis 之类的就先跳过了。一般的部署步骤可以参考微软的官方教程 部署到 asp.net core 到 iis 但依照教程做之后,还有问题,访问网站还是会出错。其实还是有些依赖组件要安装的,但教程里面没有提。
这个教程里面有说明
这是 dotnet core 的一个前置依赖,到 https://support.microsoft.com/en-us/kb/2533623 下载对应版本安装
另一个依赖,到 https://support.microsoft.com/en-us/kb/2999226 下载安装
都安装完之后,如果正确按照教程的指引来正确配置了 iis 和 publish 的话,网站就能顺利跑起来了。
按照上面步骤操作下来,网站是能跑起来了,但还有个问题,就是 Data Protection 的 key 会漂移。
在没有使用持久化 key 的时候,每次 dotnet 跑起来,都会生成并使用新的 key,这样就导致每次进程起来 key 都不一样,而这个 key 不单影响显式用 data protect api 的操作,还影响用户验证等,造成的现象就是即使使用持久化 cookie,每次服务程序重启之后,验证信息还是会丢失,又需要用户重新登录。
教程 部署到 asp.net core 到 iis 里有提到使用 powershell 脚本在注册表生成 key 容器的方法,但这个脚本在 windows 2008 r2 下直接运行是有问题的,会提示 [Microsoft.Win32.RegistryView] 类型找不到。解决方法是安装个新的 powershell,下载这个补丁 Windows Management Framework 5.0 安装之后,再运行脚本即可。
还是在对应的 App pool 高级设置中配置,默认还是按照20分钟闲置就释放进程。
就按照官方教程即可,没有什么前置项需要像 windows 2008 那样额外安装的。所有操作都很顺利。