Search This Blog

Monday, August 13, 2012

Error Adding a Content Database to a Web Application Programatically in Sharepoint

To add a content database to Web App. I am using admin account that has full access to SP 2010 and Sql 2008 R2 with all needed rights. It throws the following exception while debugging the code.


"Could not connect to SqlServer\instanace with user domain\user: Cannot connect to database master at SQL server at SqlServer\instance. The database might not exist, or the current user does not have permission to connect to it."

Solution:
Create and Delete the Web Applications and Site collections Programmitically in Sharepoint

To create and delete a web application and associated site collection programmatically. Deleting was achieved using the following code:


SPServiceCollection services = SPFarm.Local.Services;
foreach (SPService curService in services)
{
    if (curService is SPWebService)
    {
        SPWebService webService = (SPWebService)curService;
        foreach (SPWebApplication webApp in webService.WebApplications)
        {
            foreach (SPAlternateUrl alturl in webApp.AlternateUrls)
            {
                if (alturl.Uri.ToString().Contains("http://sp"))
                {
                    foreach (SPContentDatabase db in webApp.ContentDatabases) db.Unprovision(); //delete databases
                    webApp.UnprovisionGlobally(true); //removes iis site, app pool and inetpub folder
                    webApp.Delete(); //delete from central admin
                }
            }
        }
    }
}

To Create Web Application and Site Collection:

SPWebApplicationBuilder builder = new SPWebApplicationBuilder(SPFarm.Local);
SPWebApplication newApplication;
builder.Port = port;
Uri url = new Uri("http://sp");
string host = url.Host;
int port = 80;
builder.HostHeader = host;
builder.ApplicationPoolId = "Sharepoint - " + host + port.ToString();
builder.IdentityType = IdentityType.SpecificUser;
SPFarmManagedAccountCollection manaccountcollection = new SPFarmManagedAccountCollection(SPFarm.Local);
SPManagedAccount maccount = manaccountcollection.FindOrCreateAccount("Domain\User");
builder.ManagedAccount = maccount; //use the SPManagedAccount to receive the username and password automatically
builder.RootDirectory = new System.IO.DirectoryInfo("C:\\Inetpub\\wwwroot\\wss\\VirtualDirectories\\" + host + port.ToString());
builder.CreateNewDatabase = true;
builder.DatabaseName = "WSS_Content_" + host + port.ToString();
builder.DatabaseServer = "SPDB";
builder.UseNTLMExclusively = true;
newApplication = builder.Create(); // Create new web application
newApplication.Provision();

SPSite mySiteCollection = newApplication.Sites.Add("/","New Site","Site Description",1033,"BLANKINTERNETCONTAINER#0","Domain\me","Me","my@email.com");
mySiteCollection.Close();


1 comment:

  1. Hello my friend! I want to say that this post is amazing, great
    written and include approximately all important infos.

    I'd like to peer extra posts like this .

    Here is my blog; fastest way to lose weight

    ReplyDelete