Asp.net网站部署时遇到的一些问题
很少部署网站,这几天有一个网站帮朋友部署,期间遇到一些问题,经查找各种网络资源,最终解决,先将遇到的问题及解决办法分享一下。
系统 Win7+iis7.5+sqlserver2008+.Net 4.0
启动IIS,运行->Inetmgr,或者在我的电脑右键->管理,左侧选择IIS管理器
在IIS管理器左侧树节点上找到 “网站” 节点,右键->添加网站,进行基本的设置
IP地址下拉框,可以选择自己的机器IP。
设置好后,启动网站:在建好的MyWeb节点上,右键->管理网站->启动
打开IE,输入http://192.168.0.1:80/Login.aspx
第一个问题出现:
HTTP Error 500.19 - Internal Server Error
配置错误: 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的。
出现这个错误是因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。要取消锁定可以运行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是错误信息中红字显示的节点名称。
如果modules也被锁定,可以运行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
注意:cmd.exe要以管理员身份启动,在c:\windows\system32下找到cmd.exe,右键管理员启动,输入上面的命令即可。
继续输入网址
第二个问题出现:
无法识别的属性“targetFramework”,在我的web.config中有<compilation debug="true" targetFramework="4.0">,不认识4.0的.net。
在IIS管理器左侧选择“应用程序池”节点,看到右侧列表中有一列 .Net Framework版本,默认你那里应该显示是v2.0
双击这列,在弹出界面中选择 .net 4.0
继续访问,出现第三个问题(IIS 7.5 HTTP 错误 404.3 - Not Found)
解决方法如下,打开控制面板,选择程序,在选择默认程序,选择左下角的“程序和功能”
在打开的页面选择“打开或关闭Windows功能”
然后按下图将“ASP.Net”勾选
继续访问,错误又现
HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
原因分析:在安装FrameWorkv4.0后在安装IIS6,导致Framework没有安装完全
解决方案:只需要重新安装一下就可以了.在Frameworv4.0的目录中安装的程序以管理员权限重新运行一下就可以了.执行以下命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
继续错误
用户 'IIS APPPOOL\IdealTest' 登录失败
原因,web.config文件中的数据库连接使用的是windows身份验证
<add connectionString="server=DEVIL-PC;database=mydatabase;Integrated Security=True" name="ConnectionString" />
在IIS管理器左侧选择“应用程序池”节点,看到右侧列表中有一列 标识,默认你那里应该显示是ApplicationPoolIdentity,选择你的网站,右键高级设置,改变设置为NetWorkService
下一个问题
用户 NT AUTHORITY\NETWORK SERVICE 登录失败
解决办法,打开数据库,看看是不是有这个用户,如果没有自己添加一下
双击这个用户,在弹出界面中左侧选择服务器角色,右侧可以勾选public和sysadmin,再选择左侧的用户映射,右侧勾选要访问的数据库
完了,终于可以出现首页了。