前几天整了个虚拟云主机,装的Windows Server,打算把自己大二学C#时候写的小网站部署到iis上,之前都是在vs里面直接调试看网站效果,没想到部署到iis上还挺麻烦,一堆错误,在查询了各种资料已经咨询老师了后,特此整理详细过程。
首先,vs的项目文件夹是解决方案,带.sln文件,需要先发布成web文件(现在想想真可笑我竟然不知道,果然当时只会用工具)
在Windows7上安装IIS7.5,程序和功能-打开或关闭Windows功能。
注意!在应用程序开发功能 中一定要把ASP.NET选上,其他默认即可。
添加网站,选择好文件夹。
直接把默认网站给停止。
编辑应用程序池,根据你vs上用的.net版本来,我用的vs2010是.net4.0,选择。注意有一个托管管道模式选择成经典,不然一会会出错(这里不明白为什么???)。
好了开始访问网站吧!
HTTP 错误 500.19 - Internal Server Error
无法访问请求的页面,因为该页的相关配置数据无效。
配置错误 由于权限不足而无法读取配置文件
这时候发现出现这个错误,文件权限不足,说明我们的WebSite文件夹没法被iis调用没有权限,那么需要给文件夹添加权限,如果不知道添加谁这时候最简单的方法就是去看默认网站的文件夹有哪些用户的权限,这时发现需要添加IIS_IUSRS这个权限
刷新!
HTTP 错误 401.3 - Unauthorized
由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。
添加了权限还是出现这个问题,问过老师后知道了还需要添加IUSR这个权限
再刷新!
HTTP 错误 404.17 - Not Found
请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
发现.net无法执行,这时候点击服务器,打开ISAPI和CGI限制。
如果显示你需要的.net版本被不允许就变成允许,若需要的版本在里面没有,则需要注册,在运行里面输入C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis.exe –i
现在看到.net 4.0已经有了,改成允许
再刷新!
成功!
另外,有些情况也需要注意:
HTTP 错误 403.14 - Forbidden
Web 服务器被配置为不列出此目录的内容。
这是没有添加默认文档而且目录浏览禁用导致的,添加默认文档或者启用目录浏览就OK
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
异常详细信息: System.InvalidOperationException: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
如果你是64位系统出现了这个错误需要检查一下应用程序池的设置,点击你选择的应用程序池,点高级设置-启用32位应用程序,将false改为true,试试看问题有没有解决。