最近想在IIS上发布网站,弄了一下午。遇到很多问题,幸运的是都一一解决了,现在把解决问题的过程分享出来:
安装好IIS后,在VS2005上写了个网站(新建--》网站--》ASP.NET网站-》随便在Default.aspx中拖几个控件,现在一切就绪准备发布它)。
在网站上右键-》发布网站-》选择本地IIS(必须事先在IIS的默认网站下新建一个虚拟目录,比如说取名为:testweb)->选择这个位置(testweb)-->确定发布。好了,现在应该在浏览器中可以看到发布的网站了(输入http://127.0.0.1/testweb),但是却遇到了问题:
问题一:
error on line 1 at column 2: StartTag: invalid element name ASP网站--IIS错误: error on line 1 at column 2: StartTag: invalid element name 解决办法: 打开IIS--鼠标右击该网站的虚拟目录--属性--ASP.NET--ASP.NET版 本:该选项不能为空,选择相应的版本
问题二:
错误提示: 访问 IIS 元数据库失败。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败。 用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权。有关如何修改元数据库权限的信息,请参见 http://support.microsoft.com/?kbid=267904。 源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 错误分析: 因为本人安装vs2005的时候是先安装vs2005然后再安装iis的,所以在这种情况下用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库的读访问权。然而我安装顺序不对所以就没法访问。 解决办法: 1 开始->程序->Microsoft .NET Framework SDK v2.0->SDK 命令提示 2 输入 aspnet_regiis.exe -i 3 关闭VS2005,打开C:WINDOWSMicrosoft.NETworkv2.0.50727Temporary ASP.NET Files 删除刚才调试的目录 4 重起IIS,问题解决。 赫赫,问题其实很简单,只是安装的顺序不对罢了。这是因为在XP下先安装了Visual Studio2005,再安装IIS,下次要注意了。
问题三:
文框架下出现: 服务器应用程序不可用 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。 管理员注意事项: 详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。 英文框架下出现: Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request. Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur. 搜索了网上的大量资料,该问题比较经典,出现错误也很多,但国内与国外的网站与论坛上却没有比较完善的解决方法。经过一番摸索与尝试,终于有了比较好的解决方法。有三,如下: 1.重新开一个应用程序池,然后为这个目录单独指定这个池 2.访问权限的设置问题 3.重新装iis,再装framework 我的问题是属于第二个,访问权限的问题。做如下设置即可解决该问题: 在该web sites的virtual directory下,将Permissions设置一下,里面应包含 ASP.NET IIs_WPG Internet来宾帐户 System 而且ASP.NET权限要设置为 write & read. 设置后,一切运行正常.
//**************************************************************************************************************************
依次解决了以上三个问题,网站就正常的显示出来了。
其实在VS2005上新建网站工程的时候,就可以直接将其发布在IIS上。新建的时候选择“本地IIS”下的一个虚拟目录即可,这样项目本身就是在IIS上的,省去了很多不必要的麻烦。
PS:期间还遇到了没有web.config文件的问题,可以先运行调试一下生成这个文件,再发布网站就行了。