在多个站点之间共享目录

时间:2012-09-14 15:04:17

标签: asp.net visual-studio-2010 visual-studio

我们为各个公司/部门提供了一些不同的内部网站点。很多内容在它们之间是独一无二的,但它们确实有一些共享组件。

我们当前的部署设置(很糟糕)涉及使用Visual Studio中的“复制网站”工具在项目目录和服务器上的部署位置之间复制/同步文件。然后在服务器上的IIS中,我们可以设置指向共享项目的虚拟目录(主要是.aspx页面)。这些页面在站点的根目录中查找标准母版页,因此可以在每个单独的站点中使用相应的品牌进行正常工作。

一些例子:

  • / VacationCalendar
  • /的phonedir
  • / Controls(.ascx文件)

虽然它在制作中可以正常使用,但它有很多原因:

  • 复制网站工具很糟糕。
  • 您无法在本地调试这些组件,因为它们实际上并不存在于站点中。
  • 该网站未预编译,这会带来明显的性能问题。

因此,我想抛弃所有废话,转而使用预编译站点,使用Web部署项目将所有内容放在服务器上。这引发了如何处理共享组件的问题。我很确定在这种环境下我无法摆脱虚拟目录技巧,坦白说,我真的不想这样做。

如何创建.aspx / .ascx文件和相关图像/脚本/ CSS资源的子目录有点像类库?假设我将VacationCalendar目录中的所有内容放入其自己的项目/解决方案中,然后让每个Intranet站点导入该内容并使所有这些文件在/ VacationCalendar路径下可用。有没有什么方法可以做这样的事情而没有重大的麻烦?

我真的不想将所有这些网站合并到一个解决方案中,因为总是有可能需要限制源代码管理中的访问权限。

2 个答案:

答案 0 :(得分:0)

是不是很明显,或者我的想法很糟糕。无论如何:

制作母版页,链接所有网站(预编译)并具有:

  • 在保存在某个特定目录中的每个站点上传(仅限该站点)
  • 母版页上的全局上传,可将所有文件保存在同一目录中(适用于所有人)

母版页可以拥有所有共享资源的目录,每个站点可以拥有不同的文件夹。没有混乱。您甚至可以要求登录某些目录,并设置权限

答案 1 :(得分:0)

免责声明 - 我没试过。

在自己的项目中将共享目录创建为子目录。将这些项目部署到禁用站点下的Web服务器,但从实际站点链接到该站点的实际子目录。

所以在IIS中你可以拥有

+ - DisabledWebsite
|   |
|   + --- PhoneProject
|         |
|         + --- PhoneDir (at c:/webs/PhoneProject/PhoneDir
|
+ - EnabledSite
    |
    + --- RealProject (bound to http:something.com for example)
          |
          +-- PhoneDir (virtual linked to c:/webs/PhoneProject/PhoneDir

然后,您可以编译PhoneProject并将其与RealProject分开部署。您可能还必须为PhoneProject创建一个单独的命名空间,并将其编译的dll放入RealProject / bin目录。