大家好,我一直有个问题,就是关于asp.net的整站发布过程,我把做好的整站移到别人机器上的时候,除了建立虚拟目录以外,是不能正确查看的,请大家指教一下如何设置才能不用建立虚拟目录 请大家帮忙啊!

解决方案 »

  1.   

    部署和分发.NET应用程序的两种方法 
     --------------------------------------------------------------------------------
     
      发表时间:2003-1-7   
     
     
    (技术巅峰 2001年10月09日 16:56)微软的.NET计划是一项激动人心的浩大工程,随着VS.NET Beta2版本的发布,.NET技术也逐渐趋于稳定和成型,越来越多的公司和技术爱好者投入到.NET的开发中来,而现在及早开始.NET的学习和相关开发正是好时机。但是,目前存在着的一个明显事实是,所有的基于.NET技术的应用程序或者产品都需要.NET的运行库支持,因为.NET在程序部署和分发方面有些类似,它需要.NET Framework SDK的支持(JAVA应用程序需要JDK的支持才可以运行),不幸的是,目前的Win9x系列以及WinNT/2000系列均没有内置.NET SDK(不难理解,因为.NET技术的推出的时间晚于上面提到的各种操作系统的发布时间),甚至连即将发布的WindowsXP都不会内置.NET SDK。 虽然,没有了.NET SDK的支持,就连一个简单的在屏幕上面打印“Hello,World!”的应用程序都无法运行,那我们也不可能要求用户必须手工安装将近120M的.NET SDK后才能运行我们自己开发的应用程序!有没有更为简便的发布.NET应用程序的方法呢?答案是肯定的,下面我们就提供两种可以正确部署和发布.NET应用程序的方法。 一、用VS.NET来部署和分发.NET应用程序 
    无庸置疑的是,VS.NET是开发.NET应用程序的一个非常强大和快捷的集成开发环境(IDE),微软历来在配合自己的应用技术方面都能做到尽善尽美,当然,我想也只有微软才能真正做到和.NET技术的无缝衔接。 下面我们就详细看看如何利用VS.NET来部署和分发.NET应用程序。为了讲解的方便,我们例举一个非常简单的Windows应用程序:简单的在屏幕上面放置一个按钮Button。 我们开发.NET应用程序的测试环境是:Windows2000 Server中文版(SP2)+VS.NET Beta2中文版。 第一步: 在原有的项目基础上,再新建立一个项目,并且选择其中的“安装和部署项目”,如下图所示: 注意上图中红色标记的地方,尤其需要注意选择“添入解决方案”这个选项,因为只有这样才会将部署项目和我们自己的应用程序放置到同一个“解决方案”当中,这一点千万要注意了! 第二步: 点击“确定”按钮之后,会出现安装向导,如下图所示: 
    因为我们的.NET测试程序是一个Windows应用程序,所以我们在上图中选择“创建用于Windows应用程序的安装程序(S)”。点击“下一步(N)”,我们将会看到需要选择的画面,如下图所示: 
    上图中的各个选择项目的含义相信大家可以从中文名称中直观的理解到,我们就不再多费口舌了。一路点击“下一步”直到最终安装向导的完成会需要5步,最终会在当前的解决方案中添加一个名称为“Setup1”的安装项目。 在这里我们稍微提一下在VS.NET中的“解决方案”这个概念,其实在VS.NET中的所谓“解决方案”就类似于以前VB中的“项目组”概念,也就是将多个项目集成到一起而已,只不过VS.NET中的“解决方案”这个概念的覆盖范围更广泛而已罢了,这个我们知道一下就可以了。 第三步: 在完成上面的两个步骤之后,我们就会发现,VS.NET的安装向导已经将我们的应用程序中所用到的各种程序集、系统DLL文件、资源文件等等依赖文件找到了,并且我们还可以方便的继续添加额外的我们需要的其他相关文件,在这方面做的有些类似于InstallShield了,不过不需要编写安装Script脚本。 这样,我们选择VS.NET的菜单“生成(B)”—〉“生成解决方案”,即可立即生成我们的安装文件Setup1.msi,这个安装文件你可以在你的应用程序解决方案所在的目录中找到。 找到了这个安装文件你就会大吃一惊了,即使我们的应用程序只有简单的一句话,打包之后就会有17M之大!不过没有办法,VS.NET会生成一个简洁的.NET SDK放在我们刚才生成的那个安装文件当中。 剩下来的事情,就是直接在没有安装.NET环境的Windows9x/NT/2000/XP中运行我们的这个Setup1.msi文件就可以了! 二、手工部署和分发.NET应用程序 
    在上面的第一种方法中,我们可以感受到VS.NET来做.NET应用程序的方便和快捷,但是并不是所有的人都是使用VS.NET集成开发环境来开发.NET应用程序的,对于一些小的应用程序,根本不需要安装庞大的VS.NET开发环境也可以方便的开发,比如使用UtraEdit软件来编写小巧玲珑的.NET应用程序也是一个不错的选择。 在这里我们就说说如何不使用VS.NET来自己手工的部署和分发我们的.NET应用程序。首先分两类: 第一类:基于Web的.NET应用程序 对于这一类应用程序,可以说在部署和分发方面是最为简单的了,我们只需要将.NET运行环境安装到我们自己的服务器上面就可以了,用户端需要的仅仅是兼容IE4.0以上的任何浏览器就可以了。 第二类:基于Windows的.NET应用程序 对于这一类,应用程序,我们可以使用InstallShield安装软件来手工打包。首先,先在我们的.NET Frameword SDK光盘中找到目录dotNet,在这个目录里面我们可以发现一个大小大约15M的一个安装文件,这个就是我们的.Net 的运行时刻文件,类似于JAVA的JRE(JAVA运行时环境)。这个文件的体积也是比较大的,但是相对于.NET SDK文件的庞大的120M可以算是要好许多了。 至于InstallShield的详细使用方法我在这里也无法透彻讲解,不过使用起来是非常方便的,我只提出需要注意的地方: 1、在使用InstallShield中,可以稍微编写一段脚本来监测目标机器时候已经存在了.NET的运行环境,如果有了,就不必安装.NET运行时文件了。 2、所有我们自己的DLL文件不在需要注册,只需要简单的将他们拷贝到我们应用程序所在的目录即可! 我们在这里例举的是使用InstallShield来制作安装程序,当然还可以使用其它的任何第三方安装制作软件来部署和分发我们的.NET应用程序,比如Windows Installer等等。 好了,最终我们比较这两种部署和分发.NET应用程序的方法,我们可以看到,使用第二种方法能够带来的一个潜在好处是,我们可以将.NET运行时环境文件和自己的应用程序分离开来,从而在某些情况下可以大大减少部署安装应用程序的文件大小;而第一种方法就不可以了,他将始终将.NET运行时环境文件打包进入安装文件。但是第一种方法的优点也是显而易见的,就是比较智能化,需要人干预的地方很少,并且如果需要部署和分发的.NET应用程序是比较大型的软件的话,我们推荐使用第一种方法! 相信在微软正式发布.NET以及VS.NET之后,部署和分发.NET应用程序将会变得更加简单和快捷,但是最好的方式是希望微软在下一版本的操作系统中能够内置.NET运行时环境就好了,那样的话,我们就不必时刻“随身携带”体积不算小的.NET运行时环境文件了,让我们拭目以待吧。 
     
     
     
      

  2.   

    也就是这个地址:去看看更好http://www.chinaaspx.com/article/asp.net/246.htm
      

  3.   

    我晕,这个命题大了!!我想知道的是不用建立虚拟目录而正确访问asp.net站点程序的设置方法啊!!
      

  4.   

    我有一个很重要的问题顺便问一下:
       如果程序用到SQL数据库,打包的时候数据库数据怎么办?如何能在另一台机子访问数据库继续有效?
      

  5.   

    http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/vsintro7/html/vbcondeploymentscenarios.asp
      

  6.   

    .NET的部署应该来说是非常方便的,因为实现了xcopy,所以简单地把文件复制到服务器就行了,然后在IIS上设置虚拟目录指向该项目所在文件夹。
    如果你的意思是,你不能远程操控服务器的话,或者说你是想做一个安装程序,让别人能够自行部署的话,那你需要做一个安装程序了,打包的时候再写一个数据库安装类,把数据库一起给安装了(你需要提供创建数据库的脚本文件*.sql)。你可以看看这个例子:
    http://blog.csdn.net/lihonggen0/archive/2004/05/17/13654.aspx
      

  7.   

    是呀,我也遇到这个问题。
    其实这们兄弟的意思是:我申请了一个asp.net空间,有ftp权限,把我编写的asp.net程序FTP到我的空间里,然后输入url,发现我的程序不能运行,但这个程序是我在自己机子上调试好的,能正常运行,为什么到了远程服务器上就不行了呢?
    是不是还要配置虚拟目录或为目录创建应用程序呢?
    我又没有人家服务器的创建虚拟目录的权限,那我怎么才能配置好我的asp.net空间,让我的程序能够跑起来呢?
    我们知道,如果我们直接把一个asp.net程序拷贝到我们自己机子的IIS目录中是不能直接运行的,还要为其配置虚拟目录,或为该程序的目录创建应用程序。
    对提供asp.net空间的远程服务怎么配置呢?
      

  8.   

    我想搂住的想法一般有两种方法:手工配置iis;或者制作安装程序,让程序自动访问iis进行配置
      

  9.   

    这种问题是因为使用了codeBehind,就是包含代码的asp.net页,这样就会在项目目录下产生一个bin目录,里面有一个你项目依赖的.dll文件,出于安全考虑,.net要求必须经过配置的路径才能执行.dll文件,我们没有办法改变远程iis配置程序目录(除非你找空间服务商的管理员),但如果你的空间支持.net的话,那么空间根目录是配置好的,可以放带dll的bin目录。
    解决办法:
    1、拷贝你bin里的dll文件拷贝到根目录bin中,如果没有bin目录,就新建一个。
    2、把你的web.config文件拷贝到根目录。(如果冲突我还没想好,可以改你根目录的web.config)
    3、删除你程序目录中的web.config(很重要,不然.net会认为你的目录就是程序目录,会执行你目录中的bin中的dll
    4、输入你的程序路径,访问你的程序。
    这是我的解决方案,还有不完美的地方,就是如果web.config与你的根目录的web.config冲突怎么解决,请高手指教。