如何发布一个ASP.NET网站
在将ASP.NET网站发布到服务器之前需要先完成以下步骤:
1、在服务器中创建用于存放所有网站文件的虚拟目录;
2、为站点指定使用的域名或IP地址;
3、为远程用户提供用于上传文件的FTP用户名和密码。
下面就来具体介绍在已经安装了.NET Framework 2.0 的Windows Server 2003或Windows XP为背景,
如何在服务器上来配置Web站点的基本方法:
一、在Web服务器上配置IIS
Internet Information Server的缩写为(IIS)是一个World Wide Web server。
Gopher server和FTP server全部包容在里面。
IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,
有着一些扩展功能。
其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,
是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,
允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。
1、为站点准备一个IP地址
任何一个能被访问的站点必须有一个固定的IP地址为前提,Windows Server 2003或Windows XP
允许为同一快网卡设置多个IP地址,操作方法如下:
在“本地连接”上右击,在弹出的快捷菜单中执行“属性”命令,打开“本地连接属性”对话框。
选择“Internet 协议(TCP/IP)”后单击【属性】按钮,在打开的对话框中单击【高级】按钮,然后单
击“IP地址”区域中的【添加】按钮,在打开的对话框中输入要添加的IP地址与子网掩码即可。
(如IP地址:192.168.0.1,子网掩码:255.255.255.0)
注:微软对上述操作有明确的说明:“如果同一网卡的IP地址超过9个,不能保证其运行的稳定性”。
对于这上问题的一个有效的解决办法是:如果同一服务器中安排的站点数量过多时,可以通过在IIS
中指定不同的TCP端口号来区分不同的站点。如:“http://192.168.0.1:8080”和“http://192.168.0.1:8081”
表示访问使用同一个IP地址的两个不同的站点(端口号分别为“8080”和“8081”),http的默认端口号是“80”,
即“http://192.168.0.1”与“http://192.168.0.1:80”等效。
2、为站点创建“主目录”
每个Web站点必须有一个“主目录”。该目录是位于服务器上存放站点所有文件的目录。要求目录所
处的驱动器必须是NTFS分区。
3、配置IIS
在“控制面板”打开“管理工具”,在“管理工具”窗口中打开“Internet 信息服务(IIS)管理器”
打开IIS管理窗口。在管理器的左窗口中选择“网站”,再在“操作”菜单中选择“新建”下的“网站”
命令。启动“网站创建向导”,然后按向导提示分别输入网站的描述和为网站分配的IP地址等。操作完成
后将建立一个空的站点。只要将完成的网站发布到网站的指定目录下就可以通过浏览器对网站进行访问了。
注:对于没有添加IIS的系统先要为其添加IIS。添加方法是:打开“控制面板”的“添加/删除程序”
选择“添加/删除Windows 组件”中选中“Internet 信息服务(IIS)”同时将系统盘插入光驱中点击“下一步”
进行IIS的安装。只有先安装好IIS才在IIS中进行对网站的配置。
注:对于创建好虚拟站点的网站还可以在IIS管理窗口中对其进行进一步的设置。在IIS管理窗口中右
击创建好的网站,打开其属性对话框进行进一步的设置:
(1)由于VS2005创建的ASP.NET网站需要ASP.NET 2.0
版本的支持,而IIS一般默认的为ASP.NET 1.1故要在打开的属性窗口的ASP.NET选项卡下的“ASP.NET 2.0
版本”下拉列表框中选择ASP.NET 2.0版本。
(2)在打开的属性窗口的“文档”选项卡的“启用默认文档”区点击【添加】按钮将网站的起始页面的名称
添加到文本框中。这样在浏览器中输入站点的域名或IP地址后将打开默认的起始页,而无需输入起始页面名称。
(3)在打开的属性窗口的“网站”选项卡中可以更改站点的描述、IP地址和TCP端口等信息。
在第一次发布网站时往往还会遇到以下几个问题:
(1)浏览器中输入网站的地址后出现如下的提示:
“服务器应用程序不可用
您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的“刷新”按钮重试您的请求。”
当我们查看系统事件日志发现:
错误:
未能初始化 AppDomain:/LM/W3SVC/1/Root,未能加载文件或程序集“System.Web....”
错误:
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070005 拒绝访问。
警告:
未能初始化 AppDomain:/LM/W3SVC/...
Exception: System.IO.FileLoadException
Message: 未能加载文件或程序集“System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。拒绝访问。
等的错误提示信息。
对于上述问题产生的原因一般有两个:
1、asp.net2.0没有正确地在IIS中注册
2、权限问题
如果是第一种情况,可以重新注册asp.net:
系统盘/windows/microsoft.net/framework/v2.0.50727(此处为版本号)/aspnet_regiis.exe
-i
或者是直接在Mocrosoft .NET Framework v2.0 的SDK命令提示符下输入:aspnet_regiis.exe
-i
如果是权限问题,需要确保asp.net运行帐户(默认情况下,在win2003中是Network
Service,在xp中是aspnet)对N个目录具有相应的访问权限,主要是系统目录
(具体列表可以在网上很容易找到),还有一个容易忽略的目录:Web应用所对应的虚拟目录
(2)浏览器中输入网站的地址后出现如下的提示:
“访问IIS元数据失败”
这是由于先安装的VS 2005,后安装的IIS才出现的。
解决办法如下:
在开始菜单中打开 "Microsoft .NET Framework SDK V2.0"目录下的“SDK 命令提示符”,
打开以后在命令提示符中运行“aspnet_regiis -r”就可以了.
如果你安装的只是.net Framework,那么可以到下面的目录运行同样的命令:
%Systemroot%/Microsoft.NET/Framework/v2.0.50727
二、创建FTP远程管理账号
在IIS中创建了发布ASP.NET网站需要的站点后,还需要为用户提供一个用于远程上传文件的FTP服务器账号。
当然如果只是在局域网上发布的话,最后一步就省了。