Thursday, 4 October 2012

Programmatically how to create site collection in SharePoint 2010


In previous post we have seen how to create web application using server object model.


Now here the code snippet to create new site collection using Server Object Model.


Method 1:


in this method , first, once again creating new web application then creating root site collection in that web application. 


try
{
int port = Convert.ToInt32(txtPortNo.Text);

string UserName = txtUN.Text;
string DBName = txtDBName.Text;
string ServerName = txtServerName.Text;
string SiteCollectionTitle = txtSiteCollectionTitle.Text;              
string SiteCollectionDesc = txtSiteColDesc.Text;
string SiteColOwner = txtSiteColOwner.Text;
string SiteColOwnerEmail = txtEmailAddress.Text;
bool isAvail = CheckPortUsage(port);
if (isAvail)
{
SPWebApplicationBuilder builder = new SPWebApplicationBuilder(SPFarm.Local);

SPWebApplication newApplication;
builder.Port = port;
builder.ApplicationPoolId =
"SharePoint - " + port.ToString();

builder.IdentityType = IdentityType.SpecificUser;
SPFarmManagedAccountCollection manaccountcollection = new SPFarmManagedAccountCollection(SPFarm.Local);
SPManagedAccount maccount = manaccountcollection.FindOrCreateAccount(@UserName);
builder.ManagedAccount = maccount; //use the SPManagedAccount to receive the username and password automatically
builder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + port.ToString());
builder.CreateNewDatabase = true;
builder.DatabaseName = DBName;
builder.DatabaseServer = ServerName;
builder.UseNTLMExclusively =
true;

newApplication = builder.Create(); // Create new web application
newApplication.Name = "SharePoint-" + port;
newApplication.Provision();
SPSite mySiteCollection = newApplication.Sites.Add("/", SiteCollectionTitle, SiteCollectionDesc, 1033, "STS#0", @UserName, SiteColOwner, SiteColOwnerEmail);

mySiteCollection.Close();
MessageBox.Show("Web Application and site collection Created Successfully");

}
else

{
MessageBox.Show("Port Not available");

}
}
catch (Exception ex)

{
label1.Text = ex.Message;
}



public static bool CheckPortUsage(int port)

{

try

{

new TcpClient(new IPEndPoint(IPAddress.Any, port)).Close();

return true;

}

catch

{

return false;

}

}



Method 2:


in this method  we are trying to create a site collection(if u want to create root site collection replace "sites/sitecol3" with "/") in already existing web application.


SPSite site = null;

try
{

SPWebApplication webApplication = null;

webApplication = SPWebApplication.Lookup(new Uri("http://ukreddy:8998"));
site = webApplication.Sites.Add("sites/sitecol3", "anothersitecollection", "sitecolection", 1033, "STS#0", "UKREDDYSYKAM\\administrator", "UKREDDYSYKAM\\administrator", "s.urkeddy@gmail.com");
}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

Pls let me know your queries/suggestions ...

No comments:

Post a Comment