2009-06-12 7 views
1

Je suis en utilisant le code suivant pour créer programatically une application web site de & sous,Programatically créer application web et site sous

  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) 
      { 
       ; 
      }   

Il fonctionne très bien dire qu'il crée l'application Web sur le port spécifié avec le site sous mais ce sous-site ne sera pas affiché dans le menu Sites de la barre de lancement rapide et il ne sera pas affiché comme un onglet séparé sur la page d'accueil. Est-il possible de le faire par programme?

Répondre

0
« application web, mais le sous-site n'apparaît pas comme un onglet séparé sur la page d'accueil »

Je pense que ce que vous essayez de acomplish est de créer un nouveau site Web, à l'intérieur de la même application, pour que vous ne pouvez pas créer une nouvelle application car elle créera un nouveau pool de sites. Vous devez créer un nouveau site Web "sub" dans la même application que votre site d'accueil.

espérons que cette aide: 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` 
Questions connexes