zoukankan      html  css  js  c++  java
  • 如何在解决方案中新建子网站,Discuz项目子网站技术

    在.net版的Discuz项目中,后台管理模块Discuze.Web.Admin是一个单独的模块,但是,打开解决方案的文件夹却找不到单独模块的文件夹存放,而是在Discuz.Web项目里的admin文件夹里。

    经过分析,原来管理员模块是一个子网站,只是把网站建立在了Discuz.Web文件夹中,最后,在Discuz.Web项目包含在内就行了。子网站到底有什么好处了,很简单,就是方便管理,独立开发,当这个模块有问题时,单独编译这个模块,然后重新上传页面文件和DLL到主网站的Bin文件夹即可,完全不受其它影响。

    官方的说法:管理模块是独立的模块,方便管理等...(具体还待验证——囧)

     Discuz.Web.Admin是一个类库,不是一个web应用程序,那就神了,类库在添加aspx页面,是没有全自动,只能是自己手工输入和关联页面设计文件(到现在还没研究出官方是如何添加的)。且在Discuz.Web项目的admin文件夹中,只是包含aspx文件,没有包含cs文件,这样的做法是,当发布网站时,自动发布Discuz.Web.Admin的项目(最后还是没搞明白是如何只包含aspx文件不包含cs文件的)。

    子网站的优点是方便管理,模块独立,互补干扰。缺点:不能使用和包含子网站的Web.config和Global.asax这些全局文件,只能是共用主网站的,但是你可以在别的文件夹新建,单独调用就可以。

    因为项目基于VS08开发的,所以有一些开发工具的特性无法考证。(原因是我机器没装08-囧)

    以上是对Discuz.net项目的子网站新建技术的一点分析。

    下面,我们来使用VS2010新建一个子网站来实战一下,在10我改变了做法,子网站不用类库去实现,而是用web应用程序去实现,好处是方便新建aspx页面,无需手动创建,且类库全部引用了。

    首先,新建一个名为SiteCollection的Web应用程序

    然后在新建一个名为Site的子网站Web应用程序,注意保存项目的路径,必须保存在SiteCollection的根目录里。

     

    在SiteCollection项目里添加Site的引用

    最后在SiteCollection项目点击显示所有文件,这里我就不用Discuz的做法,我不包含文件进去,因为包含进去,每次新建页面时都要包含在主项目里,非常不方便,我何必不包含了,直接在发布子网站的时候拷贝到主网站的目录里,方便,省事。

    应为我这边是新建的VS10自带的示例,所以会包含Web.config和Global.asax文件,我把它干掉了。不然会报错。

    运行测试一下:

    注意URL的路径:

    成功了。

    下面我们来试下,调用主网站的Web.config的内容:

    在Site的子网站的Default.aspx.cs文件中写

    也成功了:

    切记,网页查看时一定要在主站点里进行调试查看。

    最后,如果Site的子网站项目有改动的地方,直接选择Site项目编译发布,得到dll和页面文件,上传到主网站相应的目录即可。非常的方便。

    最后,附上项目的例子:(链接: https://pan.baidu.com/s/1c2s4los 密码: 8845)

     以上是个人的见解,错误也是有滴,最后还要谢谢大家的支持。囧

  • 相关阅读:
    JS事件委托学习(转)
    js 监听监键盘动作(转)
    JS操作JSON总结
    靶机练习-VulnHub-Toopo
    Web安全测试学习笔记
    Web安全测试学习笔记
    PentesterLab练习
    CTF-攻防世界-supersqli(sql注入)
    工具学习
    漏洞复现-ElasticSearch 命令执行漏洞(CVE-2014-3120)
  • 原文地址:https://www.cnblogs.com/EasonJim/p/3062571.html
Copyright © 2011-2022 走看看