天天看点

在IIS中运行asp.net 5 web应用程序

该文章为DNX beta阶段

asp.net 5 跟之前的 asp.net 不太一样,微软对asp.net 进行了重新设计,使得部署在IIS 上不再是简单的复制文件就能行的(其实就是 dnu publish 这个命令默认打包好的不能直接用)!

要点:

1.准备好  dnu publish 命令所有生成的包, 一般在 ~/bin/output/ 里面

你会发现里面有 AppRoot和 wwwRoot 文件夹,  说明一下, AppRoot 是你的应用程序根目录, 而 wwwRoot 是网站根目录

然后,你就迷茫了, 怎么 网站根目录里面没啥东西, 还有外面的 应用程序根目录又是咋回事?

2.  打开IIS 管理器, 添加 网站,将网站根目录指定到wwwRoot 文件夹

现在问题来了, 应用程序目录 在网站外面肯定是不能运行的,然后我们把approot 移动到 wwwroot 里面,然后最重要的问题来了, 修改web.config

这里我们要把appsetting 里面的 dnx-app-base 和 runtime-path 的位置修改一下, 需要注意的是 根目录不能再用“~/”了,这里要么要借助 web.config 的位置 使用“./” (解释一下: 我们的 ~/ 变成了  dnx-app-base 里面定义的路径,注意 runtime-path 这里,如果你的approot/packages/ 里面没有运行时那个文件夹 如:dnx-clr-win-x86.1.0.0-beta5, 你就需要到%userprofile%\.dnx\runtimes\ 里面 复制一个进来)

3. 到这里应该就能运行了, 如果报告 EF错误,应该是 你的数据库用的localDb, 要运行需要修改应用程序池(应用程序池- 高级设置——标识)改为 localSystem

最后说明一下, 其实asp.net 5 运行的是 wwwroot\bin\下面的那一个AspNet.Loader.dll, 当应用程序启动时,它使用 定义的 dnx-app-base 和 runtime-path 来载入dnx,然后dnx 来运行你的程序