SharePoint 2016, Sharepoint 2013, Sharepoint 2010, Windows Server 2012, Sql Server 2012,2014,IIS, Active Directory,User Profile Service, Managed MetaData Service, Search Service, Topology, Web Application, IIS, Site collection, List, Library, PowerShell, office web app, Windows Authentication, NTLM, Kerberos, Saml, ADFS, Active Directory Import, MIM, SharePoint 2016: Rss viewer WebPart issue – SharePoint

SharePoint 2016: Rss viewer WebPart issue

Issue:

We have an issue with RSS Viewer webpart, we are trying to use the http://rss.cnn.com/rss/cnn_topstories.rss  on SharePoint site within RSS web part. We encountered error “an unexpected error occurred processing your request. Check the logs for details and correct the problem.”



Troubleshooting:

I did the following steps to troubleshoot the issue.

  • Our server use proxy address to connect internet on the servers, I updated the web.config files on all Web front ends with proper proxysettings (Configure th defaultproxy tag in web.config). But we still have the same issue.
  • Cleared the cache on the all server but no luck
  • Browse the rss feed site on the server and I can get the result without any issue.
  • Reset IIS on all server but no luck.
  • No error in the event log but I can see entries in the USL logs.

    Cannot find site lookup info for request Uri http://rss.cnn.com/rss/cnn_topstories.rss.

    Possibly the host name ‘www.cnn.com‘ is invalid and it’s could not be found. The exception is System.Net.Sockets.SocketException (0x80004005): No such host is known at System.Net.Dns.GetAddrInfo(String name) at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) at System.Net.Dns.GetHostAddresses(String hostNameOrAddress) at Microsoft.SharePoint.Utilities.CommonUtility.IsIntranetAddress(String hostName)

    RssWebPart: Exception handed to HandleRuntimeException.HandleException System.Net.Sockets.SocketException (0x80004005): No such host is known atSystem.Net.Dns.GetAddrInfo(String name) at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) at System.Net.Dns.GetHostAddresses(String hostNameOrAddress) at Microsoft.SharePoint.Utilities.CommonUtility.IsIntranetAddress(String hostName) at Microsoft.SharePoint.Utilities.SPWebRequest.PreventIntranetCalls(Uri requestUri, SPContext context, String sharePointMarkValue, String appContextLoggingValue) at Microsoft.SharePoint.Utilities.SPWebRequest.SafeCreate(Uri requestUri, SPContext context, Type callingType, String callingInstanceTag) at Microsoft.SharePoint.WebControls.XmlUrlDataSource.FetchData(String requestUrl) at Microsoft.SharePoint.WebControls.BaseXmlDataSource.Execute(String request) at Microsoft.SharePoint.WebControls.BaseXmlDataSource.GetXmlDocument() at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigatorInternal() at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigator() at Microsoft.SharePoint.WebPartPages.DataFormWebPart.GetXPathNavigator(String viewPath) at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)

At this point, I was convinced that for some reason the SharePoint is unable to either read the proxy or use the proxy to reach the internet. For this, we create test application, which read the proxy settings from the web.config file using IIS site. That works as expected.

At this time, we decide to open a premier case with MSFT and get the solutions. MSFT ran couple of traces and diag tools, they found that RSS request is being verified by a DNS lookup in spite of the fact that proxy information is read(normally when a URI is determined to be external it is just sent directly to the proxy and the proxy determines the destination). Since, we don’t have DNS resolution of the internet address and we do not use any host file entry so it failed.

Solutions:

I would called it workaround rather a solution (because solution should be using the proxy setting sin web.config).  As per the recommendation, we have to enable the intranet calls property ( By default this property is set as true.)

# This command will prevent SharePoint from trying to resolve the RSS name host in DNS which may cause problem with proxies

 Add-PSSnapin Microsoft.sharepoint.powershell

 $f = Get-SPFarm

 $f.Properties.DisableIntranetCalls = $false

 $f.Properties.DisableIntranetCallsFromApps = $false

 $f.Update()

Explanation:

There is a code change in SharePoint 2013 & 2016, SharePoint use a .Net call to ge the more information about the address and it failed because our network configuration don’t allow the DNS resolution  of internet address as well as we are not using the host file entries.

System.Net.Dns.GetHostAddresses(System.String)

So if DisableIntranetCalls is set to true (Which is default), then use above .Net call to confirm the DNS. However, if DisableIntranetCalls is set to false then SharePoint will not make this call and use other code to reach the site.

Applies to

  • SharePoint 2013 & SharePoint 2016

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *