Question

Is there an easy way to get just the web application URL in SharePoint, for example, SPWEbApplication has the following property spwebapplication.sites that would return URL's of all the site collections, but not of the root URL that they all contain. So I could return this:

http://thiswebapplication:8001/thissitecollection

but not this:

http://thiswebapplication:8001

Is there an easy way to get http://thiswebapplication without any parsing, using the SharePoint or built in ASP.NET objects?

Was it helpful?

Solution

Remember that SharePoint web applications can have multiple URLs since they can be extended onto different IIS websites e.g. http://authoring.site.com and http://www.site.com.

If you're looking to get the URL for the default zone (either with a web app which has been extended or not), you can use:

webApp.GetResponseUri(SPUrlZone.Default);

OTHER TIPS

From the SPWebApplication object you have access to AlternateURLs which will provide the collection of URLs as specified in the Alternate Access Mappings.

SPSite.Url

This is also easily accessed by PowerShell;

$sites = Get-SPSite | Where-Object {$_.Url -like "*portal*"}
 foreach ($site in $sites) {
  Write-Host "Site is SPSite Url=$site"
}
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top