.net服务器上,一个虚拟目录放多个网站的方法

时间:2022-09-05 12:17:43
 

bin文件夹,web.config文件 放在网站的根目录(update:我说的这个网站根目录不是指网站所以在目录的根目录比如c盘d盘什么的,而是放网站的那个文件夹)或虚拟目录下做为一个总的配置.

比如你要在网站根目录下放site1,site2,site3三个文件夹,分别代表你的三个网站. 先把site1里的,bin文件夹及web.config文件复制出来到外面来让它与site1,site2,site3 平级. 然后把site2,site3里的bin里的dll,复制到外面的bin文件夹里. 把site2,site3里的web.config里的连接字符串copy到外面的web.config里,一般是放在<Appsettings></Appsettings>节点或者<connectionStrings></connectionStrings> 节点里.

然后,把site1,site2,site3目录下的,bin文件夹(主要是里面的dll)及web.config全部删掉(不删掉的话就重命名下把扩展名改掉),这样就可以了.

总之就是把子目录里的binweb.config里的东西全部弄到网站根目录(或虚拟目录)的binweb.config里. 然后删之.

ps: web.config里的连接字符串不能一样. 比如你两个都是key="SqlConnectionString",另一个就要改成key="SqlConnectionString1"或其它的, 改了后,你相应的项目要重新编译一下. 毕竟都是预编译的.如果你要用到Ms Sql(SqlServer),Access,MySql 数据库,把它们的连接字符串都写进去,经测试,没有问题.

一点经验,希望能帮到你.

当时弄得我焦头烂额,苦苦挣扎,茶饭不思,..er...所以 -转载请注明- 啊.

The end.

app.Config中增加一小节
  <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <probing privatePath="bin;bin2\subbin;bin3"/>
  </assemblyBinding>
  </runtime>

//"bin;bin2\subbin;bin3"指你程序集所放的位置多个用分号分隔

具体可以参考MSND2005,VS2008的也是这样设置
MSDN2005关于于这个配置连接为 ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_fxconfig/html/1cb92bd7-6bab-44cf-8fd3-36303ce84fea.htm
定位位置为:开发工具和语言-->Visual Studio 文档-->.Net Framework核心开发-->Configuration 对象-->指定程序集的位置  

可以在MSND中索引 <probing>

http://www.cnblogs.com/kkun/archive/2008/12/22/1360005.html

这个机器配置不用太关心,还是关心我们重点web.config 因为这是我们每个项目都要用到,做ASP.NET必学吧。

4. 配置文件级别

.net服务器上,一个虚拟目录放多个网站的方法

 

     

服务器

Machine.config

Machine.config 文件包含服务器上所有 Web 应用程序 ASP.NET 架构。此文件位于配置合并层次结构顶层。

根 Web

Web.config

服务器的 Web.config 文件与 Machine.config 文件存储在同一个目录中,它包含大部分system.web 配置节默认值。运行时,此文件是从配置层次结构中从上往下数第二层合并的

网站

Web.config

特定网站的 Web.config 文件包含应用于该网站设置,并向下继承到该站点所有 ASP.NET 应用程序和子目录

ASP.NET 应用程序根目录

Web.config

特定 ASP.NET 应用程序的 Web.config 文件位于该应用程序根目录中,它包含应用于 Web 应用程序并向下继承到其分支中所有子目录的设置。

ASP.NET 应用程序子目录

Web.config

应用程序子目录的 Web.config 文件包含应用于此子目录并向下继承到其分支中所有子目录的设置。

客户端应用程序目录

应用程序名称.config

应用程序名称.config 文件包含 Windows 客户端应用程序(而非 Web 应用程序)设置。

 
5.ASP.NET Web应用程序下 的Web.config
需要对 一下信息进行了解(有详尽 注释):   configuration节点, configSections 节点, sectionGroup 节点, section节点
.net服务器上,一个虚拟目录放多个网站的方法代码
<? xml version="1.0" ?>
< configuration >   <!--  所有 ASP.NET 配置信息都驻留在 configuration 元素中.
此元素中配置信息分为两个主区域:配置节处理程序声明区域和配置节设置区域 
-->
    
< configSections >
    
<!--  配置节处理程序声明区域  驻留在 configSections 元素内  -->
        
< sectionGroup  name ="system.web.extensions"  type ="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" >
            
< sectionGroup  name ="scripting"  type ="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" >
                
< section  name ="scriptResourceHandler"  type ="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  requirePermission ="false"  allowDefinition ="MachineToApplication" />
                
< sectionGroup  name ="webServices"  type ="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" >
                
<!--  节处理程序是用来实现 ConfigurationSection 接口 .NET Framework 类
                    学过Java就知道,相当于:ConfigurationSection config = new ScriptingWebServicesSectionGroup() 我理解是这样,不对请多多指教,最好留言说明!
                
-->
                    
< section  name ="jsonSerialization"  type ="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  requirePermission ="false"  allowDefinition ="Everywhere" />
                    
< section  name ="profileService"  type ="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  requirePermission ="false"  allowDefinition ="MachineToApplication" />
                    
< section  name ="authenticationService"  type ="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  requirePermission ="false"  allowDefinition ="MachineToApplication" />
                    
< section  name ="roleService"  type ="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"  requirePermission ="false"  allowDefinition ="MachineToApplication" />
                
</ sectionGroup >
            
</ sectionGroup >
        
</ sectionGroup >
                
<!--  sectionGroup 元素表示要应用配置设置命名空间  -->
    
</ configSections >
    
< appSettings />
        
<!--  此节用于定义应用程序设置项。对一些不确定设置,还可以让用户根据自己实际情况自己设置 ;使用add添加并设置属性  -->
    
< connectionStrings >
        
< add  connectionString ="server=.;userid=sa;pwd=;databaseName=Northwind"  name ="Northwind" />
    
</ connectionStrings >

 痴人硕梦