FIX: Cannot view Power View sheet from SharePoint 2013 when a workbook uses certain Korean characters as file name

Applies to: SQL Server 2014 Business IntelligenceSQL Server 2014 Business Intelligence

Symptoms


Consider the following scenario:
  • You use Microsoft SQL Server 2012 Reporting Services (SSRS 2012) or SQL Server 2014 Reporting Services (SSRS 2014) Power View for Microsoft SharePoint 2013 in a Microsoft Office Excel 2013 workbook.
  • The workbook is named in certain Korean characters.
  • You upload the workbook to SharePoint 2013.
In this scenario, you cannot view the workbook from SharePoint 2013 and you may receive the following error message:
Microsoft.Reporting.QueryDesign.Edm.Internal.EdmException: Unable to load the specified Entity Data Model. ---> System.ArgumentException: [net_WebHeaderInvalidControlChars]
Arguments:
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.20513.00&File=System.Net.dll&Key=net_WebHeaderInvalidControlChars
Parameter name: value
at System.Net.ValidationHelper.CheckBadWebHeaderChars(String name, Boolean isHeaderValue)
at System.Net.WebHeaderCollection.set_Item(String name, String value)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.UrlAccessHttpStreamHandler.<LoadImpl>d__6.MoveNext()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator(Boolean synchronous)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore(IEnumerator`1 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl.BeginExecute(Func`2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute(Func`2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.UrlAccessHttpStreamHandler.BeginLoad(IUrlAccessMethodHandler urlAccessMethodHandler, List`1 requestCollection, AsyncCallback userCallback, Object userState)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.ReportServerConnection.<GetModelImpl>d__2d.MoveNext()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator(Boolean synchronous)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore(IEnumerator`1 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl`1.BeginExecute(Func`2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute[TResult](Func`2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.ReportServerConnection.BeginGetModel(GetModelRequestInfo requestInfo, AsyncCallback userCallback, Object userState)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.EntityDataModelDefinitionService.<GetModelDefinitionImpl>d__4.MoveNext()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator(Boolean synchronous)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore(IEnumerator`1 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl`1.BeginExecute(Func`2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute[TResult](Func`2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.<GetModelDefinitionImpl>d__ad.MoveNext()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.MoveNextChecked()
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.ResumeIterator(Boolean synchronous)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorBase.BeginExecuteCore(IEnumerator`1 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.AsyncEnumeratorImpl`1.BeginExecute(Func`2 asyncMethod)
at Microsoft.Reporting.AsyncEnumerator.BeginExecute[TResult](Func`2 asyncMethod, AsyncCallback userCallback, Object userState, AsyncEnumeratorSettings settings)
at Microsoft.Reporting.AdHoc.DataManagement.Internal.DataManager.BeginGetModelDefinition(ModelIdentifier modelIdentifier, AsyncCallback userCallback, Object userState)
at Microsoft.Reporting.QueryDesign.Services.Internal.ModelManager.<>c__DisplayClass11.<LoadModelImpl>b__e()
at Microsoft.Reporting.QueryDesign.Services.Internal.ModelManager.WrapAnticipatedExceptions[T](Func`1 operation)

Note This issue occurs for file names that contain certain Korean characters. It does not occur if you rename the file by using other Korean characters or English characters. For example:

http://sharepoint/Shared Documents/한글.xlsx (This file reports error.)
http://sharepoint/Shared Documents/테스트.xlsx (This file can open successfully.)
http://sharepoint/Shared Documents/test.xlsx (This file can open successfully.)


Resolution


The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 4 for SQL Server 2014

Cumulative Update 2 for SQL Server 2012 SP2

Cumulative Update 11 for SQL Server 2012 SP1

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.