2009-09-22 14 views
0

Je suis obligé d'utiliser les services Web SharePoint. J'ai besoin d'un service web qui me permettra de supprimer le sous-site SharePoint. J'ai essayé d'utiliser la méthode DeleteWorkspace (service Web Meetings.asmx), mais il est capable de supprimer uniquement les sous-sites qui rencontrent des espaces de travail (le mien utilise un modèle personnalisé dérivé du site d'équipe). Toute aide serait appréciée Merci.Comment puis-je supprimer un sous-site SharePoint à l'aide de services Web SharePoint?

Répondre

1

Étonnamment! Non, vous ne pouvez pas le faire .... Je sais! bizarre que cela aurait été omis. Je suis sûr qu'il y a eu une décision qui a été prise mais qui me bat si je sais pourquoi.

La seule option consiste à déployer du code personnalisé - un récepteur d'événements ou un service Web.

+0

@DJ: Ce n'est pas si bizarre. Il y a énormément de fonctionnalités manquantes dans ces services Web. Anticiper cela sera résolu pour SharePoint 2010! –

+0

Allez Alex, DeleteSite y a-t-il DeleteList etc mais l'objet web est manqué? C'est bizarre dans mon livre. –

+0

@DJ: Je pense que nous sommes d'accord ici. Votre point est que les services Web fournissent des fonctionnalités incohérentes. Mon point est qu'ils manquent complètement la fonctionnalité. Résultat final: ils sucent. –

1

Malheureusement, cela n'est pas possible avec les services Web prêts à l'emploi. (Ils ont uniquement des fonctionnalités pour la suppression au niveau de la collection de sites.)

Vous devez développer un custom web service et le déployer dans votre batterie de serveurs SharePoint.

+0

Nous vous remercions de votre réponse. Les services Web SharePoint aspirent à grands pas jusqu'à présent. – Boris

0

Si vous souhaitez supprimer un site, essayez d'utiliser le service Web dws.

J'utilisé DWS.DeleteDWS() où les functoins get_constant etc. constantes simples pour obtenir de nouveau login et webservices comme _vti_bin/dws.asmx

Public Function RemoveWSSSite(ByVal sPath As String, ByVal sSubSiteName As String) As Boolean 
     Dim DTConstant As New DTFrameWork.DTConstant 
     Dim SPDWS1 As New SPDws.Dws 
     Dim sSubsiteURL As String = "" 

     If (sSubSiteName = "") Then 
      sSubsiteURL = "" 
     Else 
      sSubsiteURL = sSubSiteName & "/" 
     End If 
     SPDWS1.PreAuthenticate = True 
     SPDWS1.Credentials = New System.Net.NetworkCredential(DTconst.Get_Constant_String_Value("SP_m_AdminUser"), DTconst.Get_Constant_String_Value("SP_m_AdminPassword"), DTconst.Get_Constant_String_Value("SP_m_SiteDomain")) 
     SPDWS1.Url = DTconst.Get_Constant_String_Value("SP_m_SiteServerName") & IIf(sPath.StartsWith("/"), "", "/") & sPath & IIf(sPath.EndsWith("/"), "", "/") & sSubsiteURL & DTconst.Get_Constant_String_Value("SP_m_dws_asmx") 
     Try 

      SPDWS1.DeleteDws() 

      Return True 
     Catch ex As Exception 
      Return False 
     End Try 
    End Function 
0

comme Ben Says, en utilisant /_vti_bin/Dws.asmx doivent être des œuvres. Voici un autre exemple

public bool DeleteSubSite(string urlSubSite, string user, string passw, string domain) 
    { 
     bool retValue = true; 
     Dws docWS = new Dws(); 
     docWS.Url = urlSubSite + "/_vti_bin/Dws.asmx"; ; 
     docWS.Credentials = new System.Net.NetworkCredential(user, passw, domain); 

     try 
     { 
      docWS.DeleteDws(); 
     } 
     catch (SoapException soex) 
     { 
      retValue = false; 
     } 
     return retValue; 
    } 
1

Si vous mettez à niveau vers SharePoint 2013, il y a une nouvelle méthode dans le service Web Sites: DeleteWeb. Il s'attend à ce que l'URL du sous-site soit supprimée, par rapport au site auquel vous avez connecté le service Web.

--- Ferda

Questions connexes