Tuesday, January 8, 2013

SharePoint 2010 Enterprise Search | SharePoint Crawl ExceptionalBehaviour

Security Issues to be taken care while configuring SharePoint Search for Public facing Portals - SharePoint
When search crawler [SPSCrawl.asmx and sitedata.asmx ] comes to a SharePoint site , how it gets to know whether it's a SharePoint site or a normal site ?

There is a custom header defined by Microsoft on SharePoint web applications : Name : MicrosoftSharePointTeamServices ; Value like : 14.0.0.4762

It tells crawler to dig to the item levels in SharePoint Lists , treat target as SharePoint Site.....



What if this custom header is removed on target ? :--> Search crawler will crawl up to list level only . If we use fiddler, while crawling site collection you could observe , there is no call made to SPSCrawl.asmx and sitedata.asmx by the crawler. This web application will no more be treated as SharePoint Website by Search crawl.
Now to make your site secure , you want that hackers may not get these custom headers , but search crawlers need it .
There is a way out , let your search crawl be targeted to a different web application than the public facing one !!!! And on public facing website use <clear /> under http response headers to hide from external world internal server information.

You may also like:

my website does not work well with newly released version


Question : what is arpirowupdater.hxx ?

Tuesday, November 20, 2012

display hide content on page using JQuery

On page load , 1st div which is "div1"  is enabled , rest are hidden . On further link clicks , respective divs , as defined by class of list element  , are enabled , rest divs are disabled

jQuery(function () {

$('#nav a').click(function () {

var myClassLinked = $(this).parent().attr('class');

$('#container > :not(#' + myClassLinked + ')').hide();

$('#' + myClassLinked ).fadeIn(); }); });

$(document).ready(function () {

$('#container > :not(#' + 'div1' + ')').hide();

$('#' + 'div1').fadeIn();

});

Full example code

Sunday, October 14, 2012

feature activation code using powershell does not pick appsettings values

This is a  very common scenario where , our deployment guides tend to be useless with automation just because features are activated well using UI in settings of site/site collection  , but fail using powershell.

Here is the solution to this :


using (SPWeb web = properties.Feature.Parent as SPWeb)
{
SPWebApplication webApp = web.Site.WebApplication;
Configuration config = WebConfigurationManager.OpenWebConfiguration("/", webApp.Name);
// App settings are retrieved this way
config.AppSettings.Settings["someAppSettingKey"].Value;


// Connection string settings are retrieved this way
config.ConnectionStrings.ConnectionStrings["someDBConnectionString"].ConnectionString
web.Site.Dispose();
}


 

Reference :

Read web.config on FeatureActivated event while activating Feature using PowerShell

 

Wednesday, October 10, 2012

Get Dependent files from HTML response

Hi

I am getting response of a page like :

System.Net.HttpWebRequest  request  ...

request.Credentials...

request.Method = ...

request.UserAgent =..

(System.Net.HttpWebResponse)request.GetResponse();

receiveStream = response.GetResponseStream();

readStream = new StreamReader(receiveStream, Encoding.UTF8);

string pageContent = readStream.ReadToEnd();

Now out of this string pageContent    , I want to extract all sub request and make them a hit.   Is there something better than html agility pack for this ?

Reply 1 By http://social.msdn.microsoft.com/profile/joel%20engineer/?ws=usercard-mini

I usually read it into an htmlDocument Class and the use either GetElementByID or GetElementsByTagname()

 

 

 

string pageContent;

webBrowser1.Document.Write(pageContent);

 




jdweng

 

Reply 2 


You should try http://htmlagilitypack.codeplex.com/

I am searching something better dear.

Tuesday, September 25, 2012

Dummy Workflow References

Hi

 


    •  For my Document Library WorkflowAssociations.Count  is zero.

    • For this document Library EnableModeration  is false.

    •  Still I can see column in the document Library named "Approval Status".  (internal name   "_ModerationStatus")



When I try to set  EnableModeration  true for this document library , I get exception.

Seems to be some time in the past workflow was enabled on this list / enablemoderation was true . But setting these to negative did not remove Approval Status column.

How I can fix this document library without deletion , so that  future workflows enabled or enablemoderation=true should not give exception ?

Monday, August 6, 2012

User Policy to restrict Form Authentication Users from visitingapplication pages like viewlsts.aspx

• On web application management ( e.g. http://ServerName:CentralAdminPort/_admin/WebApplicationList.aspx) page under central admin , go to Permission Policy :


• Mark the check box which says deny users to view application pages and save.

• Output is :

• Now go to user policies tab for main web application and click on add user :


• Select the zone on which public main application is deployed :

• Under people picker type "ASP.NET Membership provider name" , Permissions : Deny System Pages and click finish :

• Output is like :

Now access few application pages and lists directly to verify with a form authentication user .


Alternative approach and suggestions are welcome under comments section.

Friday, August 3, 2012

0x80070057 sharepoint variations

On page http://ServerName/_Layouts/VariationLogs.aspx , when I ran Timer Job "Variations Create Hierarchies Job Definition" , I was getting the error ( Under Failures column) :

The Variations Create Hierarchies job failed with the following error message: <nativehr>0x80070057</nativehr><nativestack></nativestack>.

I was getting below mentioned errors in ULS logs :

Process : OWSTimer.exe
Area : Web Content Management
Category : Site Management
Level : Unexpected




CreateVariationHierarchiesJob catches Exception. System.ArgumentException: <nativehr>0x80070057</nativehr><nativestack></nativestack> at
Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at
Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at
Microsoft.SharePoint.SPWeb.GetFileOrFolderObject(String strUrl) at Microsoft.SharePoint.Publishing.CommonUtilities.GetFileFromUrl(String url, SPWeb web) at
Microsoft.SharePoint.Publishing.PublishingPage.get_Layout() at Microsoft.SharePoint.Publishing.PublishingPage.set_Layout(PageLayout value) at
Microsoft.SharePoint.Publishing.Internal.DeploymentWrapper.CreateVariantPage(PublishingPage sourcePage, PublishingWeb targetArea, String destPageWebRelativeUrl, String pageLayoutName, String title, String
description, Boolean copyResources, Boolean enforceMajorVersion, SPWeb& webToClose, PageLayout[] targetAreaAvailablePageLayouts) at Microsoft.SharePoint.Publishing.PublishingPage.CreateVariationInner
(VariationLabel varlabel, String pageLayoutName, String destPageName, String title, String description, Boolean copyResources, Boolean overrideStopUpdate, Boolean isCreateHierarchies, Boolean
enforceMajorVersion, Boolean skipIdentityTargetConflictChecks, Boolean stopAutoSpawnAfterDelete, Boolean sendNotificationEmail, LongRunningOperationJob lroLogger, PublishingWeb targetArea, PageLayout[]
targetAreaAvailablePageLayouts, Hashtable variationPageLayoutTable) at Microsoft.SharePoint.Publishing.PublishingPage.CreateVariationAuto(CachedVariationSettings variationSettings, VariationLabel
varlabel, Boolean isCreateHierarchies, Boolean enforceMajorVersion, Boolean skipIdentityTargetConflictChecks, LongRunningOperationJob lroLogger, PublishingWeb targetArea, PageLayout[]
targetAreaAvailablePageLayouts, Hashtable variationPageLayoutTable) at Microsoft.SharePoint.Publishing.PublishingWeb.<>c__DisplayClass3e.<CreateVariationsDeepForCurrentPages>b__38(SPListItem item) at
Microsoft.Office.Server.Utilities.ContentIterator.ProcessItem(SPListItem item, Boolean fIncludeFolderItems, MonitoredScopeWrapper monitoredScopeWrapper, ItemProcessor itemProcessor, ItemProcessorErrorCallout
errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItems(SPListItemCollection items, Boolean fIncludeFolderItems, Boolean fIterateInReverseOrder, MonitoredScopeWrapper
monitoredScopeWrapper, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItems(SPListItemCollection items, Boolean
fIncludeFolderItems, Boolean fIterateInReverseOrder, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at
Microsoft.SharePoint.Publishing.PublishingWeb.<>c__DisplayClass3e.<CreateVariationsDeepForCurrentPages>b__37(SPListItemCollection items) at
Microsoft.Office.Server.Utilities.ContentIterator.ProcessListItems(SPList list, SPQuery query, ItemsProcessor itemsProcessor, ItemsProcessorErrorCallout errorCallout) at
Microsoft.Office.Server.Utilities.ContentIterator.ProcessListItems(SPList list, String strQuery, UInt32 rowLimit, Boolean fRecursive, SPFolder folder, ItemsProcessor itemsProcessor,
ItemsProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessListItems(SPList list, String strQuery, UInt32 rowLimit, Boolean fRecursive, ItemsProcessor
itemsProcessor, ItemsProcessorErrorCallout errorCallout) at Microsoft.SharePoint.Publishing.PublishingWeb.CreateVariationsDeepForCurrentPages(CachedVariationSettings variationSettings, VariationLabel
varlabel, Boolean isCreateHierarchies, LongRunningOperationJob lroLogger, List`1 errors, Hashtable variationPageLayoutTable) at
Microsoft.SharePoint.Publishing.PublishingWeb.<>c__DisplayClass34.<CreateVariationsDeepForChildPages>b__30(SPWeb web) at Microsoft.Office.Server.Utilities.CultureUtility.RunWithCultureScope
(CodeToRunWithCultureScope code) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessSite(SPSite site, Boolean fSetThreadCulture, WebProcessor webProcessor, WebProcessorErrorCallout errorCallout)
at Microsoft.Office.Server.Utilities.ContentIterator.ProcessSite(SPSite site, WebProcessor webProcessor, WebProcessorErrorCallout errorCallout) at
Microsoft.SharePoint.Publishing.PublishingWeb.<>c__DisplayClass34.<CreateVariationsDeepForChildPages>b__2f(SPSite rootSite) at Microsoft.Office.Server.Utilities.TimerJobUtility.ProcessSite(SPSite site,
SiteProcessor siteProcessor) at Microsoft.SharePoint.Publishing.PublishingWeb.CreateVariationsDeepForChildPages(CachedVariationSettings variationSettings, VariationLabel varlabel, Boolean
isCreateHierarchies, LongRunningOperationJob lroLogger, List`1 errors, Hashtable variationPageLayoutTable) at Microsoft.SharePoint.Publishing.PublishingWeb.CreateVariationsDeepForChildren
(CachedVariationSettings variationSettings, PublishingWeb sourceParentPubWeb, VariationLabel varlabel, Boolean isCreateHierarchies, LongRunningOperationJob lroLogger, List`1 errors) at
Microsoft.SharePoint.Publishing.PublishingWeb.CreateVariationsDeep(CachedVariationSettings variationSettings, ReadOnlyCollection`1 varLabels, Boolean isCreateHierarchies, Boolean recurse,
LongRunningOperationJob lroLogger, List`1 errors) at Microsoft.SharePoint.Publishing.Internal.CreateVariationHierarchiesJobDefinition.PerformVariationsSpawn(SPWorkItem workItem, SPWeb currentWeb,
CachedVariationSettings variationSettings)





Process : OWSTimer.exe
Area : Web Content Management
Category : Site Management
Level : Unexpected



PublishingWeb::CreateVariationsDeepForCurrentPages caught Exception at item 'Pages/Folder1/Folder2/PageName.aspx' with : <nativehr>0x80070057</nativehr><nativestack></nativestack>







Process : OWSTimer.exe
Area : Web Content Management
Category : Publishing
Level : Monitorable




GetFileFromUrl: ArgumentException when attempting get file Url http://OldServerName/_catalogs/masterpage/PageLayoutFileName.aspx <nativehr>0x80070057</nativehr><nativestack></nativestack> at
Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at
Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object& pvarFileOrFolder) at
Microsoft.SharePoint.SPWeb.GetFileOrFolderObject(String strUrl) at Microsoft.SharePoint.Publishing.CommonUtilities.GetFileFromUrl(String url, SPWeb web)





Process : OWSTimer.exe
Area : SharePoint Foundation
Category : General
Level : High



<nativehr>0x80070057</nativehr><nativestack></nativestack>





Process : OWSTimer.exe
Area : Web Content Management
Category : Site Management
Level : Unexpected




PublishingWeb::CreateVariationsDeepForChildPages() caught Exception at web 'http://NewServerName/es-LA/Subsite1' with : <nativehr>0x80070057</nativehr><nativestack></nativestack>





Process : OWSTimer.exe
Area : Web Content Management
Category : Site Management
Level : Unexpected




DeploymentWrapper::CreateVariantPage() on sourcePage = 'Pages/Folder1/Folder2/PageName.aspx', targetWeb = 'http://NewServerName/es-LA/Subsite1' catches an unexpected exception: System.ArgumentException:
<nativehr>0x80070057</nativehr><nativestack></nativestack> at Microsoft.SharePoint.Library.SPRequestInternalClass.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId,
Int32& plType, Object& pvarFileOrFolder) at Microsoft.SharePoint.Library.SPRequest.GetMetadataForUrl(String bstrUrl, Int32 METADATAFLAGS, Guid& pgListId, Int32& plItemId, Int32& plType, Object&
pvarFileOrFolder) at Microsoft.SharePoint.SPWeb.GetFileOrFolderObject(String strUrl) at Microsoft.SharePoint.Publishing.CommonUtilities.GetFileFromUrl(String url, SPWeb web) at
Microsoft.SharePoint.Publishing.PublishingPage.get_Layout() at Microsoft.SharePoint.Publishing.PublishingPage.set_Layout(PageLayout value) at
Microsoft.SharePoint.Publishing.Internal.DeploymentWrapper.CreateVariantPage(PublishingPage sourcePage, PublishingWeb targetArea, String destPageWebRelativeUrl, String pageLayoutName, String title, String
description, Boolean copyResources, Boolean enforceMajorVersion, SPWeb& webToClose, PageLayout[] targetAreaAvailablePageLayouts).





Possible Reason :

1. You have recently moved your content db from an old server , the display names for page layouts seems to be updated ( even on mouse hover) but internally older server name is being referred.
2. Even after updating page layout via object model , publishing cache is not flushed.
Possible Resolution:

1.

For all the Publishing pages under source variation , update property "PublishingPageLayout" to http://NewServerName/_catalogs/masterpage/PageLayoutFileName.aspx [ old value
http://OldServerName/_catalogs/masterpage/PageLayoutFileName.aspx ]
page.ListItem.Properties["PublishingPageLayout"] = newPageLayout;

2. Flush object cache at http://ServerName/_Layouts/objectcachesettings.aspx
3. IISRESET
4. Restart owstimer.exe
5. Under http://ServerName/_Layouts/VariationLabels.aspx again schedule create Hierarchies.
6. Have a cup of tea.
7. Start the Timerjob 'Variations Create Hierarchies Job Definition’ manually or wait for the schedule.
8. Keep an eye on http://ServerName/_Layouts/VariationLogs.aspx