2012-11-29 2 views
-2

J'ai utilisé le code suivant mais il donne une exception en tant que System.NullReferenceException: la référence d'objet n'est pas définie sur une instance d'un objet. Quelqu'un peut-il corriger s'il vous plaîtComment créer sitecollection par programme

try 
    { 
     SPWeb mySite = SPContext.Current.Web; 
     SPWebCollection subSites = mySite.Webs; 
     string currentTemplate = mySite.WebTemplate; 

     string siteUrl = TextBox1.Text.ToString(); 
     string siteTitle = TextBox2.Text.ToString(); 
     string siteDescription = TextBox3.Text.ToString(); 

     subSites.Add(siteUrl, siteTitle, siteDescription, 1033, 
      currentTemplate, true, false); 

     lblMessage.Text = "Site created."; 
    } 
    catch (Exception ex) 
    { 
     lblMessage.Text = "Some error" + ex; 
    } 
+0

Callstack au moment d'exception serait beaucoup plus utile ... et remplacer tous les 'TextBoxX.Text' appelle de l'échantillon avec des valeurs réelles qui provoquent l'exception. –

+0

son exception de lancement dans la première ligne SPWeb mySite = SPContext.Current.Web; – Raj

+0

-1. Le titre de votre question ne correspond pas au problème actuel ... et votre échantillon contient des valeurs inconnues (TextBoxX.Text) juste pour le plaisir ... –

Répondre

0

Vous exécutez votre code en dehors du site SharePoint. SPContext.Current est null dans ce cas.

Sans plus de détails, il n'est pas possible de suggérer des solutions pour l'exception.

2

Si vous appelez ceci à partir d'un WPF ou si vous devez créer l'objet SPweb via le ServerURL.

au lieu de SPWeb mySite = SPContext.Current.Web;

essayer SPWeb mySite = new SPSite("http://demo2010site")