2009-06-12 88 views
1

我使用下面的代碼以編程方式創建一個Web應用程序&子網站,編程方式創建Web應用程序和子網站

  try 
      { 

       SPWebApplicationBuilder webAppBuilder = new SPWebApplicationBuilder(SPFarm.Local); 

       SPWebApplication newApplication; 
       int myPort = 3333; 
       webAppBuilder.Port = myPort; //Port No. 
       webAppBuilder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + myPort); 
       webAppBuilder.CreateNewDatabase = true; // Create new database 

       webAppBuilder.DatabaseName = "WSS_Content_372772890a5a4a04abb460cd9ea3bd22"; // Database name 
       webAppBuilder.DatabaseServer = webAppBuilder.DefaultZoneUri.Host; // DatabaseServer Host name/computer name   

       webAppBuilder.UseNTLMExclusively = true; // Use NTLM authentication 

       newApplication = webAppBuilder.Create(); // Create new web application 
       newApplication.Provision();   // Provision it into web farm   

       using (var mySiteCollection = newApplication.Sites.Add("/", "Site 3", "Site 3 Decscription", 1033, "STS#1", "In-Wai-Svr2\\Administrator", "Administrator", "[email protected]")) 
       { 
        using (var rootWeb = mySiteCollection.RootWeb) 
        {       
         // Code customizing root site goes here       

         using (var subSite = rootWeb.Webs.Add("Site3.1", "Site 3.1", "Site 3.1 Description", 1033, "STS#1", true, false)) 
         {        
          // Code customizing sub site goes here 
         }       
        } 
       } 
      } 
      catch(Exception ex) 
      { 
       ; 
      }   

它工作正常,也就是說,它創建了子網站,但在指定的端口上的Web應用程序此子網站不會顯示在快速啓動欄的「網站」菜單下,也不會在主頁上顯示爲單獨的選項卡。是否有可能以編程方式進行?

回答

0

「的Web應用程序,但該子網站並沒有出現在主頁上一個單獨的標籤」

我認爲你正在試圖acomplish是創建一個新的網站,同樣的應用程序中,對於你不能創建一個新的應用程序,因爲它會創建一個新的站點池。您必須在您的主網站的相同應用程序內創建一個新的「子」網站。

希望這有助於: example

0
SharepointSiteService.Sites siteWS = new SharepointSiteService.Sites(); 
           siteWS.Credentials = new System.Net.NetworkCredential("user1", "password", "domain"); 
try 
{ 

              SharepointSiteService.Template[] templates; 
              siteWS.GetSiteTemplates(1033, out templates); 
              SharepointSiteService.Template template = (from SharepointSiteService.Template t 
              in templates 
                         where t.Title == "Test Template" 
                         select t).FirstOrDefault(); 

siteWS.CreateWeb("<parent web name>" + "/" + <sub web name>" + "/" + <sub web name>", "Test web", "Test Web", template.Name, 1033, true, 1033, true, 1033, true, false, false, false, false, false, false); 
} 
catch (Microsoft.SharePoint.SoapServer.SoapServerException e) 
{ 
             System.Diagnostics.EventLog.WriteEntry("SharePoint Foundation", "soap exception" + e.Detail + e.Message + e.Source + e.Node); 
} 
catch (Exception ex) 
{ 
             System.Diagnostics.EventLog.WriteEntry("SharePoint Foundation", "Site Created"); 
             System.Diagnostics.EventLog.WriteEntry("SharePoint Foundation", ex.Message + ex.Source + ex.StackTrace); 
}`enter code here`