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 this error: “an unexpected error occurred processing your request. Check the logs for details and correct the problem.”


Troubleshooting

I did the steps given below to troubleshoot the issue.

At this point, I was convinced that for some reason, SharePoint is unable to either read the proxy or use the proxy to reach the internet. For this, we create test Application, which reads the proxy settings from the web.config file, using IIS site. It 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 the proxy information is read (normally when a URL 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, it failed.

Solutions

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

  1. #This command will set the disable intranet - calls value to false.
  2. Add - PSSnapin Microsoft.sharepoint.powershell
  3. $farm = Get - SPFarm
  4. $farm.Properties.DisableIntranetCalls = $false
  5. $farm.Properties.DisableIntranetCallsFromApps = $false
  6. $farm.Update()

Explanation

There is a code change in SharePoint 2013 & 2016, SharePoint uses a .NET call to get more information about the address and it failed because our network configuration doesn't allow the DNS resolution of an internet address as well as we are not using the host file entries.

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

Thus, if DisableIntranetCalls is set to true (default), then use .NET call given above 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