今天把一个asp.net做的网站移到另一台服务器上,居然折腾了我一早上,效率真是太低了。
这个网站原来放在win2000的服务器上,由于内存太小,运行.net的程序很慢,于是决定把它放到配置稍好一些的服务器上,选中的这另一台服务器是windows2003server的,还没装IIS,一大早就开始安装,先装IIS,接下来是.net framework 3.0,这东西装起来真是慢,等了半个钟头,装完还要重启,重启后,把网站文件拷贝过来,给IIS用户加上读写权,本以为这样就行了,直接在浏览器打开网站,却出现以下错误:

“/”应用程序中的服务器错误。

运行时错误

说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。

详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。

<!-- Web.Config 配置文件 -->
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。

<!-- Web.Config 配置文件 -->
<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration>
 
 
我的Web.Config 配置文件里面是没错的,就是上面写的这样,值是“off”的,一时也找不到什么原因,上google搜索一通,没找到合适的答案,真是头大。
 
在网站文件夹属性里给ASPNET这个用户加上读写权,又安装了asp.net 2.0 AJAX Extensions1.0,不行,在另一台win2003的机器上试着装了.net framework2.0,一运行,还是一样的错误,改web.config,还是不行。来回折腾了一阵,到中午了,先吃个饭。
 
吃完饭回来,无意中打开IIS虚似目录的属性,胡乱点开来看,突然看到ASP.net的标签页面上,asp.net version 一项上选中的是1.1.4322,下面还有一个选项是2.0.50727,我就选上了下面的2.0这个选项,没想到网页可以正常打开了,原来问题出在这里,安装好IIS以后默认是asp.net 1.1的版本的,而网站需要2.0支持才能打开,问题解决了。
 
设置方法:
网站虚拟目录->属性->asp.net->asp.net version ,默认版本是1.1的。
将它改成2.0
这个设置的前提是系统已经安装.net framework 2.0