天天看点

怎样在asp网站上添加自己的asp.net子网站

现在的asp网站,一般都是建设在windowsserver 2008上,使用的IIS一般是7.0以上,这样一来,实际上和asp.net可以兼容的,也就是说,既可以用asp网页,也可以解析asp.net的网页,如果安装上一些插件,甚至同时可以解析php页面,真是方便。

假设我的网站原本是asp的,根目录是websuit,下面有多个目录,例如:dep1,dep2,dep3等等,分别是三个不同的部门子网页,现在我要新建一个子目录dep4,但是要求dep4中的子网站使用asp.net创建,该怎么做呢?

主要思路是:

1、  用vs2010构建出网站结构,做出需要的网页,并发布出来;

2、  修改一下web.config文件,放置自己的dll文件

一、第一步:

(1)在vs2010中新建一个网站,根目录是websuit(也可以是别的名称),在此目录下新建文件夹dep4,在dep4中编写自己的aspx网页,这个过程和普通asp.net做网站一样的。

(2)在解决方案中可以分层建立多个新项目(注意:新项目要放在dep4目录下,这样网站发布时,这些项目都会在dep4目录下)

(3)完成后,发布自己的网站,发布成功的网站根目录就是websuit,里面的dep4含有你自己的aspx页面和各个层的项目,你把这个dep4目录拷贝到自己的web服务器的websuit根目录下即可。

(4)保证将本解决方案的sln文件放在根目录outSuit目录下【sln在网站发布后可以删除】。

二、第二步:

(1)      由于aspx文件的后台代码文件被编译成dll,这些dll一般都被发布到根目录下的bin目录下,所以要将bin目录拷贝到web服务器的websuit目录下。

按说这就结束了,dep4中的aspx页面应该能运行了吧?至少我试验成功了。

但是还有一个小问题:如果以后建设了多个aspx子网站【假设又添加了dep5,dep6】,每个子网站中的所有aspx网页使用的dll都放在bin中,混在一起,最后分不清哪个dll属于哪个子网站的了。

一个较好的办法是:每个aspx子网站包含了自己的aspx页面,同时也含有自己的bin目录,例如:dep4目录下含有自己的aspx页面,同时含有自己的bin,放置自己使用的dll,这样的话网站结构就很清晰了。

做法是:修改web.config文件【即使是asp网站,在IIS7中也有这个文件吧】,在configuration节点中添加以下代码:

<runtime>

    <assemblyBindingxmlns="urn:schemas-microsoft-com:asm.v1">

      <probing privatePath="bin;dep4\bin;dep5\bin;"/>

    </assemblyBinding>

  </runtime>

这样一来,aspx页面在解析时会搜索privatePath中的路径,就会找到dep4\bin下的dll,ok!

继续阅读