2011-12-15 23 views
0

誰かが助けてくれることを願っています。Webサーバー用の仮想ディレクトリを作成する方法は? (ASP.NET)

Webサーバー上の次のディレクトリ host/folder1/folder2/default.aspxと言うサイト用のvirtualDirectoryを作成したいとします。 IISで

これは、簡単にapplicationHost.configファイル編集することによって行うことができます。私は同じ方法を試してみて、Webサーバのルートレベルに設定ファイルをアップロードする際に

<application path="/"> 
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> 
</application> 

..butをして入力し仮想パス、私は404bエラーが発生します。

ファイルを現在のディレクトリに保存したままで、host/default.aspxのような短い名前を付けたい場合は、必ずフルパスを入力する必要はありません。

これはウェブサーバーでどのように行われますか?

私の問題は理にかなっています。

ありがとうございます!

答えて

0

は、あなたのサイトのための完全な情報を提供する必要があります。重要な情報は、ポート番号、サイト名、およびIDそのものです(重複を削除します)。私はそれを "MySite"、2、8080とそれぞれ言いました。

  <sites> 
       <site name="MySite" id="2"> 
        <application path="/"> 
        <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> 
        </application> 
        <bindings> 
        <binding protocol="http" bindingInformation="*:8080:" /> 
        </bindings> 
       </site> 

       <applicationDefaults applicationPool="DefaultAppPool" /> 
       <virtualDirectoryDefaults allowSubDirConfig="true" /> 
      </sites> 
同じことがC#で行うことができます

  using Microsoft.Web.Administration; 

    using (ServerManager serverManager = new ServerManager()) 
      { 
      Configuration config = serverManager.GetApplicationHostConfiguration(); 
      ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites"); 
      ConfigurationElementCollection sitesCollection = sitesSection.GetCollection(); 

      ConfigurationElement siteElement = sitesCollection.CreateElement("site"); 
      siteElement["name"] = @"MySite"; 
      siteElement["id"] = 2; 
      siteElement["serverAutoStart"] = true; 

      ConfigurationElementCollection bindingsCollection = siteElement.GetCollection("bindings"); 
      ConfigurationElement bindingElement = bindingsCollection.CreateElement("binding"); 
      bindingElement["protocol"] = @"http"; 
      bindingElement["bindingInformation"] = @"*:8080:www.MySite.com"; 
      bindingsCollection.Add(bindingElement); 

      ConfigurationElementCollection siteCollection = siteElement.GetCollection(); 
      ConfigurationElement applicationElement = siteCollection.CreateElement("application"); 
      applicationElement["path"] = @"/"; 
      ConfigurationElementCollection applicationCollection = applicationElement.GetCollection(); 
      ConfigurationElement virtualDirectoryElement = applicationCollection.CreateElement("virtualDirectory"); 
      virtualDirectoryElement["path"] = @"/"; 
      virtualDirectoryElement["physicalPath"] = @"C:\Inetpub\wwwroot"; 
      applicationCollection.Add(virtualDirectoryElement); 
      siteCollection.Add(applicationElement); 
      sitesCollection.Add(siteElement); 

      serverManager.CommitChanges(); 
      } 
0

あなたは何を達成しようとしているのですか.Microsoft.Web.Administration名前空間を使用してコードを使用してIISを設定できます。

Microsoft.Web.Administration Namespace

関連する問題