我们有一个在IIS服务器上运行的传统ASP.net驱动站点,该站点由中央团队开发,供多个客户使用.但是,每个客户都有自己的站点的aspx文件副本和web.config文件.这导致了问题,因为良好意义的支持工程师对源aspx文件的副本所做的更改没有被折叠回中央源,因此我们的代码库是分歧的.我们当前的文件夹结构类似于:OurApp/Source aspx&default web.config
Customer1/Source aspx&web.config
Customer2/Source aspx&web.config
Customer3/Source aspx&web.config
Customer4/Source aspx&web.config
. ..
这是我想要更改为每个客户只有一个自定义web.config文件和所有客户共享一组通用源文件的东西.所以类似于:OurApp/Source aspx&default web.config
Customer1/web.config
Customer2/web.config
Customer3/web.config
Customer4/web.config
...
所以我的问题是,如何设置它?我是ASP.net和IIS的新手,因为我通常在家里使用php和apache,但我们在这里使用ASP.net和ISS.
使用源代码控制,我打算重新培训支持工程师,但有没有办法避免拥有源aspx文件的多个副本?我讨厌那种重复!
如果您在单个应用程序实例上设置了死机,则可以在单个web.config中使用自定义ConfigurationSection后完成所需操作.有关基础知识,请参阅:
http://haacked.com/archive/2007/03/12/custom-configuration-sections-in-3-easy-steps.aspx
http://msdn.microsoft.com/en-us/library/2tw134k3.aspx
示例XML可能是:
现在,在ConfigSection属性中,公开Name,SomeSetting和Another.访问或设置属性时,请使用条件(请求域或其他唯一标识客户的内容)来决定使用哪个.
通过适当的实现,应用程序开发人员无需了解幕后发生的事情.他们只使用CustomSettings.Settings.SomeSetting,而不用担心哪个客户正在访问该应用.