目前我们建立一个空网站,默认页面为 default.html
d:/corsite/
里面什么都没有
然后绑定N个网站,如  www.a.com  www.b.com  ....当访问者访问  www.a.com 时要达到正常访问要做到以下任务1.如何通过 windows 服务在执行IIS前进行识别在 d:/corsite/www.a.com/defalut.html 文件是否存在.如果不存在则:
  自动去 temps.corsite***.com 网站把参数 如 http://temps.corsite***.com/default.html?website=www.a.com 采取下来
  保存在  d:/corsite/www.a.com/default.html 
  如果已存在则跳过.2.开始执行IIS www.a.com 网址时, 网站显示的页面显示为  d:/corsite/www.a.com/defalut.html 页url保存不变,这里我想到
  的方法有:
  通过 url 重写, 自动识别域名,然后再执行后面的内容(工具ISAPI_Rewrite) 但不知道怎么用3.以上我要达到的效果是一个数据库,多个域名,同时自动生成静太化,提高速度.请各位大虾们研究下,多谢.

解决方案 »

  1.   

    简单     自己写个httpHandlers接管类, 之后的事情都在httpHandlers里面去做了,想怎么做就怎么写.
      

  2.   


    怎么写,,比如 www.a.com 自动读取站点下 /www.a.com/
           如果是 www.b.com 自动读取站点下 /www.b.com/
      

  3.   

    主要的是第二步, 如何达到 www.a.com  自动访问到 /www.a.com/default.html 
    如果是 www.a.com/products/ 也能访问主机里的 /www.a.com/products/default.thml
      

  4.   

    你也可以参照UrlRewrite里面的二级域名重写. 一样的道理, urlrewrite的二级域名例子中二级域名就是你的www.a.com www.b.com
      

  5.   

    首先分析第一次访问空网站来源url
    让这些url重定向[全局处理页面] 如 processurl.*
       全局处理页面判断如果要访问的网站已存在,重定向目标既可
        如果不存在,再与 http://temps.corsite***.com 交互. 将数据保存到本地.
      

  6.   

    processurl.*  这东东我还真没用过,
      

  7.   

    IIS中设置默认页面
    protected   void   Application_BeginRequest(object   sender,   EventArgs   e) 

            if (HttpContext.Current.Request.RawUrl.Contains(""))) 
            { 
                    this.Context.RewritePath(""); 
            } 

      

  8.   

    url重写需要UrlRewriter.dll
    再在web.config中设置<configuration>
    <configSections>
        <section name="ReplaceUrl" type="URLRewriter.Config.UrlsSection, URLRewriter"/>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"><ReplaceUrl>
        <urls>
          <add virtualUrl="~/gaikuanglist.html" destinationUrl="~/gaikuanglist.aspx"/>
          <add virtualUrl="~/gaikuanglist(.+)\.html" destinationUrl="~/gaikuanglist.aspx?id=$1"/>
          <add virtualUrl="~/gaikuangmore(.+).html" destinationUrl="~/gaikuangmore.aspx?id=$1"/>
          <add virtualUrl="~/newslist(.+).html" destinationUrl="~/newslist.aspx?id=$1"/>
          <add virtualUrl="~/newslist.html" destinationUrl="~/newslist.aspx"/>
          <add virtualUrl="~/newsmore(.+).html" destinationUrl="~/newsmore.aspx?id=$1"/>
          <add virtualUrl="~/productlist.html" destinationUrl="~/productlist.aspx"/>
          <add virtualUrl="~/productlist(.+).html" destinationUrl="~/productlist.aspx?id=$1"/>
          <add virtualUrl="~/productmore(.+).html" destinationUrl="~/productmore.aspx?id=$1"/>
          <add virtualUrl="~/xingxianglist.html" destinationUrl="~/xingxianglist.aspx"/>
          <add virtualUrl="~/xingxianglist(.+).html" destinationUrl="~/xingxianglist.aspx?id=$1"/>
          <add virtualUrl="~/xingxiangmore(.+).html" destinationUrl="~/xingxiangmore.aspx?id=$1"/>
        </urls>
      </ReplaceUrl> <httpModules>
          <add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
      

  9.   

      <add virtualUrl="~/gaikuanglist.html" destinationUrl="~/gaikuanglist.aspx"/>
    我是想读取的是
    www.a.com/default.html     访问的是 站点下 /www.a.com/default.html
      

  10.   

    在下目前只想到得两种方法,不知道能不能解决您的问题:
    1.IIS中设置默认页面
    protected void Application_BeginRequest(object sender, EventArgs e)  
    {  
      if (HttpContext.Current.Request.RawUrl.Contains("")))  
      {  
      this.Context.RewritePath("");  
      }  
    }
    2.使用一般处理程序:
    IIS中设置默认页面
    public void ProcessRequest (HttpContext context) {
    if (HttpContext.Current.Request.RawUrl.Contains("")))  
      {  
      this.Context.RewritePath("");  
      }  
    }
      
      

  11.   

    IIS设置中可以设置默认页面,在web.config中也可以定义