SSRS 2008 - HTTP Status 401: Unauthorized
I have a WPF application which is hosting a SSRS 2008 ReportView via a WindowsFormsHost control. I am trying to connect to a remote server to run a report, but I receive the following error:
{"The request failed with HTTP status 401: Unauthorized."}
[System.Net.WebException]: {"The request failed with HTTP status 401: Unauthorized."}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
InnerException: null
Message: "The request failed with HTTP status 401: Unauthorized."
Source: "Microsoft.ReportViewer.Common"
StackTrace: " at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.SetConnectionSSLForMethod(String methodname)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.ProxyMethodInvocation.Execute[TReturn](RSExecutionConnection connection, ProxyMethod`1 initialMethod, ProxyMethod`1 retryMethod)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WinForms.ServerReport.EnsureExecutionSession()
at Microsoft.Reporting.WinForms.ServerReport.GetDataSources(Boolean& allCredentialsSet)
at Microsoft.Reporting.WinForms.RSParams.GetDataSources(Boolean& allSatisfied)
at Microsoft.Reporting.WinForms.RSParams.EnsureParamsLoaded(Boolean forceCredentialsShown, ReportParameterInfoCollection parameterInfos)
at Microsoft.Reporting.WinForms.RSParams.EnsureParamsLoaded()
at Microsoft.Reporting.WinForms.ReportViewer.RenderReportWithNewParameters(Int32 pageNumber)"
TargetSite: {System.String[] GetSecureMethods()}
Here's my environment:
I have a Windows 2008 Server running SQL Server 2008. This server is a virtual machine running on Hyper-V in a Virtual Private LAN and I'm using RAAS to route traffic to this virtual via a static IP.
I'm passing NetworkCredentials to the report for a user that can access and run reports. I can prove this by logging in to the report server via a browser with these same credentials.
var report = reportViewer.ServerReport;
report.ReportServerCredentials.NetworkCredentials =
new NetworkCredential("MACHINE-NAME\\USER","Password");
Anyway, I've tried everything, short of disabling authentication altogether. Has anyone experienced authentication issues with ssrs in a hosted / virtual environment?
Any help would be greatly appreciated.
Thanks
I need help pls, I have the same problem error 401 etc...
I implement all solution in this page and nothing..
Help me pls.
stringurlReportServer =
ReportViewer1.ProcessingMode =
ProcessingMode.Remote;
// ProcessingMode will be Either Remote or Local
ReportViewer1.ShowExportControls =
true;
ReportViewer1.ShowPrintButton =
true;
ReportViewer1.ServerReport.ReportServerUrl =
newUri(urlReportServer);
//Set the ReportServer Url
ReportViewer1.ServerReport.ReportPath =
"/Reportes/"+ ReportName;
//Passing the Report Path
IReportServerCredentialsirsc =
newCredencialesReporting("******",
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.Refresh();
ReportViewer1.Visible =
true;
///<summary>
///</summary>
string_usuario, _password, _dominio;
publicCredencialesReporting(stringuserName,
stringpassword,
stringdomain)
_usuario = userName;
_password = password;
_dominio = domain;
publicSystem.Security.Principal.WindowsIdentityImpersonationUser
get
returnnull;
publicSystem.Net.ICredentialsNetworkCredentials
get
returnnewNetworkCredential(_usuario,
_password, _dominio);
///<summary>
///</summary>
///<param
name="authCoki"></param>
///<param
name="userName"></param>
///<param
name="password"></param>
///<param
name="authority"></param>
///<returns></returns>
//public bool GetFormsCredentials(out System.Net.Cookie authCoki, out string userName, out string password, out string
authority)
// userName = _usuario;
// password = _password;
// authority = _dominio;
// authCoki = new System.Net.Cookie(".ASPXAUTH", ".ASPXAUTH", "/", "Domain");
// return true;
publicboolGetFormsCredentials(outSystem.Net.CookieauthCookie,
outstringuser,
outstringpassword,
outstringauthority)
// Do not use forms credentials to authenticate.
authCookie =
null;
user = password = authority =
null;
returnfalse;
Similar Messages
-
Ssrs 2008 r2 The request failed with HTTP status 401: Unauthorized.
hello,
I created a report from one user who is owner of sharepoint site ,where sharepoint foundation site is installed.
but when i tried to access that report from another machine with same user owner of the site ,i received the error message as
the request failed with http status 401 unauthorized.
please help.
thanksHi Krishnakumar_DeV,
The Reporting Services Web service must use Windows integrated authentication in SharePoint integrated mode. If it is set to Basic, Anonymous, or otherwise, it will not function as expected, if at all.
The HTTP 401 error may occur if the Reporting Services integration has been configured to use Windows authentication, while Kerberos authentication has not been configured correctly. In order to solve the problem, we can configure the data source to use
stored credentials or refer to the solutions in the "5.4 The request failed with HTTP status 401: Unauthorized" section of the following article:
http://msdn.microsoft.com/en-us/library/ee384252(v=sql.100).aspx
Hope this helps.
Regards,
Alisa Tang
Alisa Tang
TechNet Community Support -
SSRS 2012 - The request failed with HTTP status 401: Unauthorized.
I have SSRS Reporting Services 2012 load balanced on two servers.
Both servers are running Windows Server 2012 R2.
I have a Web Application that renders reports by utilizing this SSRS Reporting Services 2012.
When the application generates a report using load balancing I get error the message, “The request failed with HTTP status 401: Unauthorized.”
However, using only one reporting server, the application is able to render the report just fine.
It seems that when the requests are shared between the servers the problem occurs.
One solution is to configure Load Balancing with “Source IP” persistence.
This seems to work. I believe this is a “sticky” session.
With this Load Balancing configuration, the application can render the report just fine.
(However, I have not done complete testing.)
The problem occurs when calling the service ListChildren(string, bool ) on SSRS.
I have been researching online. I tried modifying the registry on the servers based on online articles (see below.)
Here are some articles I have looked at.
http://msdn.microsoft.com/en-us/library/cc281307(v=sql.110).aspx
http://blogs.msdn.com/b/lukaszp/archive/2008/07/18/reporting-services-http-401-unauthorized-host-headers-require-your-attention.aspx
http://blogs.msdn.com/b/lukaszp/archive/2008/07/18/reporting-services-http-401-unauthorized-host-headers-require-your-attention.aspx
Is there a better solution? Will Load Balancing with “Source IP” persistence be an acceptable solution? Is there a patch needed for the servers or SSRS? Please let me know.Hi GoGladiator,
Generally, "The request failed with HTTP status 401: Unauthorized" occurs when
The service account used to connect to the Report Server is not authorized.
The Reporting Services is configured to use Kerberos, however, we didn't register Service Principal Name (SPN) for the account the Reporting Services is running under.
So, to fix this issue, we can refer to the follow steps:
Make sure the user is able to connect to the Report Server.
If using Kerberos authentication, please make sure SPN is configured correctly. If using Kerberos authentication, please make sure SPN is configured correctly.
For more information about Kerberos Authentication and how to register SPN for a report server in Reporting Services, please see the articles below:
Configure Windows Authentication on the Report Server
Register a Service Principal Name (SPN) for a Report Server
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
We have a hosted SSRS server and we access it's reports using the reportviewer in an ASP.net application.
We are getting the error: The request failed with HTTP status 401: Unauthorized. When trying to run one of the reports. I have confirmed that the login details work when logging into the report manager page directly.
I have implemented an instance of IReportServerCredentials in a separate class (below) and I call it from the page before it tries to access the report. I'm not sure if this is all I need but can't seem to find any other info.
I have managed to gain access connecting to the external server from my PC and accessed the report, but when I promote the code to production and run it from there on my local PC I get the unauthorized message again: the request failed with http status
401: unauthorized
The class:
[Serializable]
public sealed class MyReportServerCredentials :
IReportServerCredentials
public WindowsIdentity ImpersonationUser
get
// Use the default Windows user. Credentials will be
// provided by the NetworkCredentials property.
return null;
public ICredentials NetworkCredentials
get
// Read the user information from the Web.config file.
// By reading the information on demand instead of
// storing it, the credentials will not be stored in
// session, reducing the vulnerable surface area to the
// Web.config file, which can be secured with an ACL.
// User name
string userName =
ConfigurationManager.AppSettings
["MyReportViewerUser"];
if (string.IsNullOrEmpty(userName))
throw new Exception(
"Missing user name from web.config file");
// Password
string password =
ConfigurationManager.AppSettings
["MyReportViewerPassword"];
if (string.IsNullOrEmpty(password))
throw new Exception(
"Missing password from web.config file");
// Domain
string domain =
ConfigurationManager.AppSettings
["MyReportViewerDomain"];
return new NetworkCredential(userName, password);
public bool GetFormsCredentials(out Cookie authCookie,
out string userName, out string password,
out string authority)
authCookie = null;
userName = null;
password = null;
authority = null;
// Not using form credentials
return false;
The call to the class, just before the report is run:
if (GetConnection.GetConnectionString().ToString().Contains("IP of external server removed"))
invoiceviewer.ServerReport.ReportServerCredentials = new MyReportServerCredentials();
We have tried so many things here, we don't even care whether the server authenticates or not but it appears to be as standard. Our hosting company has also drawn a blank and changed so many settings to no avaHi Nasa1999,
According to your description, you are getting the error: The request failed with HTTP status 401: Unauthorized when you access the report using the ReportViewer in an ASP.net application.
Regarding the 401 error, it could cause by the Service Principal Name(SPN) for the account the Reporting Services is running under hasn’t been registered when the Reporting Services is configured to use Kerberos authentication. So in your scenario,
please check if you are using Kerberos authentication. If that is a case, please make sure SPN is configured correctly. For more information, please refer to the similar thread:
The request failed with HTTP status 401: Unauthorized. in SSRS.
If issue persists, please check the Reporting Service error log (default location: %programfiles%\Microsoft SQL Server\<SQL Server Instance>\Reporting Services\LogFiles) around the time that the error message thrown out.
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu
Qiuyun Yu
TechNet Community Support -
I got the error "The request failed with HTTP status 401: Unauthorized." when I call the Reporting Service Web Service.
The code is very simple:
// Initialise the reporting service Web Service
this.RSWebService = new ReportingService2010();
// Pass windos authentication credentials to Web Service
this.RSWebService.Credentials = System.Net.CredentialCache.DefaultCredentials;
// List children
List<CatalogItem> reports = this.RSWebService.ListChildren(folder, false).ToList();
The SQL Server is installed on a different machine (say server A) from the Web server (say server B). We are using Windows Server 2003.
The code work fine for all the scenario below:
i) Run locally (XP) to call the web service on the sql server
ii) Provide the Network Credentials with the username, password, and domain when calling the web service
iii) If the web server and sql server is using same server (i.e. not distributed)
I'm using windows authentication and impersonation. Any idea?Hi Raymond,
If I understand correctly, the issue only happens in the environment that the web server is different with the SQL Server Reporting Services server. This means the web server is a remote server of the Report Server. Windows Integrated authentication is used
in this case. When running the web page, the 401 error occurs.
If so, it is actually a double hop issue. The double-hop problem will usually only be an issue to those of you who write some sort of web-based code (a web application or web service) that uses impersonation.
To fix the issue, we can configure kerberos authentication for the web application and the SQL Server Reporting Services.
Below is a great article that has delivered many solutions to fix the issue you met:
http://odetocode.com/articles/216.aspx
Additionally, you can read the following article to know more about double-hop:
http://blogs.technet.com/b/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx
http://blogs.msdn.com/b/knowledgecast/archive/2007/01/31/the-double-hop-problem.aspx
If you have any more questions, please feel free to ask.
Thanks,
Jin Chen
Jin Chen - MSFT
Thanks Jin. I believe this is the cause of the problem as well.
I tried to register the SPN but unfortunately it still doesn't work. I'm not sure whether I'm using the correct SPN name.
I have 3 reporting server instance on the SQL box. So the Web Service URL is like
http://Server:80/VirtualDirectoryDev,
http://Server:80/VirtualDirectoryTest and
http://Server:80/VirtualDirectoryStaging .
What's the SPN I need to register?
I tried
Setspn -a http/Server:80/VirtualDirectoryDev domain\account
and
Setspn -a http/aerver:80 domain\account.
But both of them are not working :( -
The IReportServerCredentials approach with the ReportViewer control is working fine within a domain, but I get a 401 not authorized error for a Web IIS server trying to call a SSRS server in another domain. I've see plenty of helpful postings on the use
of IReportServerCredentials but nothing that provides suggestions for this cross domain issue. Hope someone has some ideas on this one. Thanking you in advance for your response.
Using VS 2008 VB.NET web app with ReportViewer control Version=8.0.0.0.
Outside domainA Web Server IIS 8. OS = Windows NT 6.2;
Inside domainA Windows 7 desktop; Inside domainA Windows Server 2003
SSRS using windows authentication and on SQL Server 2012. OS = Windows NT 6.2
The processing described below successfully produces a report when the web server app runs on a machine in the same domain as the SSRS server. For the "same domain" web app, both Win 7 desktop VS 2008 development server and Windows 2003 IIS 6 have
been tested successfully.
The report fails with error "The request failed with HTTP status 401: not authorized " when the web app is run from a windows IIS 8 machine (outward or Internet facing web server) that is not in the domain of the SSRS server. The ReportViewer control
credentials (provided by IReportServerCredentials and taken from the web.config file) match a domain account in the same domain as the SSRS
server and one that has browser permission on the report folder. The same credentials are used successfully for reports requested from within the SSRS domain.
One interesting thing is that on the Internet facing web server, I can access the report via a browser request. So it is possible to have a user request coming from the Internet facing machine get through the SSRS windows authentication. Just does not
work for the ReportViewer.
Using IReportServerCredentials interface per example provided by Microsoft msdn site. Code listed below.
IReportServerCredentials would appear to be a viable approach because it can pass credentials of a windows account known to the SSRS server, but not known to the client machine. By the way, database calls to SQL Server in domainA using a SQL Server
native login account work fine. So the network support communication to a domain that the web server does not belong to.
<Serializable()> _
Public NotInheritable Class MyReportServerCredentials
Implements IReportServerCredentials
Public ReadOnly Property ImpersonationUser() As System.Security.Principal.WindowsIdentity _
Implements IReportServerCredentials.ImpersonationUser
Get
'Use the default windows user. Credentials will be
'provided by the NetworkCredentials property.
Return Nothing
End Get
End Property
Public ReadOnly Property NetworkCredentials() As ICredentials _
Implements IReportServerCredentials.NetworkCredentials
Get
'Read the user information from the web.config file.
'By reading the information on demand instead of storing
'it, the credentials will not be stored in session,
'reducing the vulnerable surface area to the web.config
'file, which can be secured with an ACL.
'User name
Dim userName As String = _
ConfigurationManager.AppSettings("MyReportViewerUser")
If (String.IsNullOrEmpty(userName)) Then
Throw New Exception("Missing user name from web.config file")
End If
'Password
Dim password As String = _
ConfigurationManager.AppSettings("MyReportViewerPassword")
If (String.IsNullOrEmpty(password)) Then
Throw New Exception("Missing password from web.config file")
End If
'Domain
Dim domain As String = _
ConfigurationManager.AppSettings("MyReportViewerDomain")
If (String.IsNullOrEmpty(domain)) Then
Throw New Exception("Missing domain from web.config file")
End If
Return New NetworkCredential(userName, password, domain)
End Get
End Property
Public Function GetFormsCredentials(ByRef authCookie As Cookie, _
ByRef userName As String, _
ByRef password As String, _
ByRef authority As String) As Boolean _
Implements IReportServerCredentials.GetFormsCredentials
authCookie = Nothing
userName = Nothing
password = Nothing
authority = Nothing
'Not using form credentials
Return False
End Function
End Class
'Set the ReportViewer values and retrieve the report from the SSRS server into a pdf file on the client machine.
ProposalRptViewer.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
' Set the ReportViewer ReportServerCredentials from the MyReportServerCredentials Class.
' Note the credentials are for a domain account defined in the same domain that the SSRS server belongs to and one that has browser permission on the report folder.
ProposalRptViewer.ServerReport.ReportServerCredentials = _
New MyReportServerCredentials()
ProposalRptViewer.ServerReport.ReportServerUrl = New Uri(System.Configuration.ConfigurationManager.AppSettings(Web.[Global].CfgKeyReportServerURL))
ProposalRptViewer.ServerReport.ReportPath = System.Configuration.ConfigurationManager.AppSettings(Web.[Global].CfgKeyReportPathProposal)
ProposalRptViewer.ShowCredentialPrompts = False ' disable prompting for data source credentials
Dim paramList As New Generic.List(Of ReportParameter)
Dim pInfo As ReportParameterInfoCollection
pInfo = ProposalRptViewer.ServerReport.GetParameters()
paramList.Add(New ReportParameter("ProposalID", ProposalID, True))paramList.Add(New ReportParameter("Entity", Entity, True))
paramList.Add(New ReportParameter("intRatesPage", intRatesPage1, True))
ProposalRptViewer.ServerReport.SetParameters(paramList)
' Process and render the report
ProposalRptViewer.ServerReport.Refresh()
Dim mimeType As String = Nothing
Dim encoding As String = Nothing
Dim streams As String() = Nothing
Dim extension As String = Nothing
Dim warnings As Microsoft.Reporting.WebForms.Warning() = Nothing
Dim returnValue As Byte()
' Render the proposal Rate Page 1 report to a Byte Array output in pdf file format.
returnValue = ProposalRptViewer.ServerReport.Render("PDF", Nothing, mimeType, encoding, extension, streams, warnings)
An error only occurs for web server not in the domain of SSRS Server:
The request failed with HTTP status 401: Unauthorized.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack
trace below.
Stack Trace:
[WebException: The request failed with HTTP status 401: Unauthorized.]
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods() +236
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname) +58
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.SetConnectionSSLForMethod(String methodname) +16
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID) +226
Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo() +192
Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters) +136
DeltaRater.Web.ViewRates.btnCreateProposal_Click(Object sender, EventArgs e) in C:\alex\~~_____Rapid_Rater\SourceDir_VS2008_Jan17_2014\DRR\ViewRates.aspx.vb:911
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
Version Information: Microsoft .NET Framework Version:2.0.50727.8009; ASP.NET Version:2.0.50727.8010I got the answer to my question by following suggestions by Irb on another technical forum.
From web server (not on same domain), I was passing credentials of a domain account on the SSRS server. Irb suggested I create a local account on the SSRS server and pass those credentials. I tried this but got the same results.
This approach worked for web server in SSRS domain, but failed with 401 Unauthorized for web server outside the SSRS domain. Per suggestion for local account on SSRS server, I tried passing empty string "" as the domain via IReportServerCredentials.
Again this works for web server in the same domain as SSRS. But I get the 401 Unauthorized error when the web server is outside the domain. In testing and checking similar posts, I discovered an additional piece was required for the report request to work
across domains. The default user did not have authority to send the request and/or receive the report. Adding the following in <system.web> section of web.config file was needed.
<identity impersonate="true" userName="localwindowsuser" password="#########"/> where "localwindowsuser" is a windows user defined on the web server.
I never needed this extra piece when the web server ran in the same domain as the SSRS server. I thank Irb for making me go through the details of additional tests because that is how I stumbled across an identity comment and ultimately got things working. -
" The request failed with HTTP status 401: Unauthorized." assembly webservice
Hi!
I have an assembly that calls a webpage for information to put in a table in SSRS. After struggling with the assembly that have been moved from a 2005 server to a 2012 server i finally got the reports to deploy and i can open them. But in the field where
the called information i supposed to be i get this error message.
How do i solve this problem?
Thanks in advance!
//A.Hi there,
Check the IIS logs on the web service server. Is the web page secured? What credentials are being passed to the web service? Turn on the report server trace logs and check them.
Some more info here, I find sysinternals.com tools very helpful in this case.
There are quite a few links with similar issue:
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/86ce6376-71cd-44fe-9480-fff103395d6b/web-service-request-failed-with-http-status-401-unauthorized-in-ssrs-2008-r2?forum=sqlreportingservices
http://forums.iis.net/t/1149741.aspx?Intermittently+getting+401+Access+Denied+with+Web+Service
http://technet.microsoft.com/en-us/library/ee384252(v=sql.100).aspx
http://technet.microsoft.com/en-us/library/cc281309.aspx
http://connect.microsoft.com/SQLServer/feedback/details/323214/the-request-failed-with-http-status-401-unauthorized
Compare the settings in the Reporting Services configuration files and service accounts for the old and new servers to see any discrepancies.
cheers,
Andrew
Andrew Sears, T4G Limited, http://www.performancepointing.com -
Configuring Reporting Service Add-in for sharepoint - HTTP status 401: Unauthorized.
I have the following setup
Machine 1
WSS 3.0
Installed Reporting Service Add-in
Machine 2
Reporting Service
Sharepoint Object Model
SQL Server
Sharepoint and Report Server DB
I have congigured Reporting Service for Sharepoint Integrated Mode adn Created new Reprot Server DB
Sahre Point Integration is Green and verified link
In Sharepoint Central Administration
Manage Reporting Service Integratio i have selected the URL and "Trusted Account" as my web applications use "Windows Integration - NTLM".
All services, DB access everything running under one domain user account.
I am logged into sharepoint with same account. When clieck on set server defaults i get following error
An unexpected error occurred while connecting to the report server. Verify that the report server is available and configured for SharePoint integrated mode. --> Server was unable to process request. ---> The request failed with HTTP status 401: Unauthorized.
Same error when i try to add a report to a sharepoint webapplication
The domain account is part of "Farm Administration", "site colletion administrato" and local administrator also on both servers.
Can someone let me know how to fix this.jpmartop,
were you able to get this to work?
We have a 4 server topolgy.
moss
wfe
sql
ssrs
and are using Kerberos.
I've installed the wfe on the ssrs and am using a domain user for services, web and pools.
I get all green dots in the ssrs config.
in Central Admin, Grant access seems to work with the domain user, but set defaults gives me:
HTTP status 401: Unauthorized.
What should my web security on the default web site and reports and reports server look like? Integrated Security
Should the SSRS WFE entry in MOSS have Web application service turned on?
I've checked that my SPNs are good.I've installed sql server sp2 and a did windows update on all servers..
Could it be the user I log into the Central Admin with.. it's got server administrator and Farm administrator?
Thanks for any help or information. -
"The request failed with HTTP status 401: Unauthorized"
Hi,
I'm trying to get both RSS feeds and SSRS reports on a web application which is having NTLM authentication without Kerberos. The catch is proxy setting, if I give <proxy autoDetect="false" /> in web.config of my sharepoint web
application SSRS reports will be rendered in SQL Server Report viewer perfectly (I deploy using BIDS), but RSS viewer webpart will not display my internet feeds. If I give
<proxy autoDetect="true" /> RSS feeds are displayed properly but SSRS report will throw the following error.
The request failed with HTTP status 401: Unauthorized.
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[WebException: The request failed with HTTP status 401: Unauthorized.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +412862
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +300
Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.ListRenderingExtensions() +53
Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.ListRenderingExtensions() +207
Microsoft.Reporting.WebForms.ServerReport.ListRenderingExtensions() +130
Microsoft.ReportingServices.SharePoint.UI.WebParts.ActionMenu.OnPreRender(EventArgs e) +180
System.Web.UI.Control.PreRenderRecursiveInternal() +108
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Control.PreRenderRecursiveInternal() +224
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394
I tried to work around this by adding proxy settings with bypass list.
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy proxyaddress="http://<proxy IP address>:<port>" bypassonlocal="true" usesystemdefault="true" />
<bypasslist>
<add address="<my report server>" />
<add address="http://<report server>:8080/reportserver/" />
<add address="<IP of my report server>" />
</bypasslist>
</defaultProxy>
</system.net>
This makes RSS feed to work but SSRS throw the above error. I would need some advice from Microsoft on how to fix this.
Note: My sharepoint site cannot be anonymous. I have just once service account that runs sql server service, report service, sharepoint services etc. This account is local admin on all servers, has highest access on sql box, run SSRS web service and app
pools, etc.
I have four servers, 2 WFE in windows load balanced, 1 app server (running Central admin and report service in sharepoint integrated mode), 1 db server hosting all content and config dbs and report server db.
Regards,
Manoj
Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET Version:2.0.50727.3618Hi,
Thanks to share your post.
For the issue,
do you mean that the error happen with the use of NTLM authentication without Kerberos? If yes, the possible cause should be the lacking of Kerberos.
My suggestion is to implement the Kerberos authentication in your environment. You may check it and test it. For the detailed steps of implementing of the Kerberos:
http://blogs.msdn.com/b/martinkearn/archive/2007/04/23/configuring-kerberos-for-sharepoint-2007-part-1-base-configuration-for-sharepoint.aspx.
http://blogs.msdn.com/b/james_world/archive/2007/08/20/essential-guide-to-kerberos-in-sharepoint.aspx.
Hope this could help you!
Leo -
Service Clients failing with "The request failed with HTTP status 401: Unauthorized"
Hello,
We have implemented a solution using the SSRS web service clients as produced by the WSDLs. We have deployed the application on one server, and via the code we are calling the SSRS on another server (i.e., not using ReportViewer, etc.). We do
know that the user signed in has permissions since from the same staging server the Report Manager and Reports can both be accessed and viewed. However, it's only when we run the application and attempt to execute a report on the remote SSRS server that
we get the following error:
The request failed with HTTP status 401: Unauthorized. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String
methodName, Object[] parameters) at AMC.AssetTracker.Reporting.ReportExecution.ReportExecutionService.LoadReport(String Report, String HistoryID) at AMC.AssetTracker.Reporting.Report.GetReportByteArray() at AMC.AssetTracker.Reporting.Report.get_ReportStream()
at AMC.AssetTracker.Reporting.Report.get_GetWebUIDisplay() at AMC.AssetTracker.UserControls.AssetTrackerMain.btnGenerate_Click(Object sender, EventArgs e)
The credentials we have tried are the DefaultCredentials. One question I have is how do you use custom credentials if neither the DefaultCredentials or the DefaultNetworkCredentials work? Also, this service call does have to go through an ISA
server before reaching the SSRS server.
Any ideas?
Thanks.It sounds like Kerberos authentication is needed in your situation since it's not on the same box.
There is a one-hop limit with NTLM authentication.
For more info please see the link below:
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/452e9627-cd8e-4709-bdd0-fbafcf9fd719
Hope this helps!
Thanks, Michael Mei -
The request failed with HTTP status 401: Unauthorized.
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WinForms.ServerReport.GetExecutionInfo()
at Microsoft.Reporting.WinForms.ServerReport.SetParameters(IEnumerable`1 parameters)
at Accounting.Reports.UI.FormReportPreview.LoadReport()
at Accounting.UI.FormBase.PreLoadReportComponents()
Please help me with this can't figure out, don't know how to troubleshoot this 5 days working on this error no changes so far, thanks in advance if u can figure it out....Hi willjohn520,
Based on your description, it seems that you are getting the error when you connect to report server reports in workstation. If in this scenario, the issue can be caused by “Host Header”(<foo>) in a URL that looks like http(s)://<foo>/reports
is neither the machine name nor the loop back IP address nor the machine's IP address.
For more details information about this issue, please refer to the following blog:
http://blogs.msdn.com/b/lukaszp/archive/2008/07/18/reporting-services-http-401-unauthorized-host-headers-require-your-attention.aspx
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Error "The request failed with HTTP status 401: Unauthorized"
Dear All,
While running ssrs report using reportviewer I am getting following error as "The request failed with HTTP status 401: Unauthorized". I have also added required entry in registry and rebooted the server. But same issue appears. So, please help
me to resolve this.
Thanks in advanceHi dsddsadsa,
According to your description, when trying to running report from the report viewer control, the error "The request failed with HTTP status 401: Unauthorized" is thrown out.
While running report viewer control without impersonation setting, by default it will use the process identity which is Network Service (the AppPool identity is Network Service). Depending on the identity of the AppPool the app is running under, the identity
might be rejected. In your scenario, you may haven’t enable ASP.NET impersonation, you will get this exception. Please set up the following impersonation in the Web.config file, so that ASP.NET will use the configured user name and password to access the report
server:
<configuration>
<system.web>
<identity impersonate="true"
userName="domain\user"
password="password" />
Reference:
Request failed with HTTP status 401: Unauthorized (ReportViewer
control)
If you have any question, please feel free to ask.
Best regards,
Qiuyun Yu -
Error http the request failed with http status 401: unauthorized
Hi,<o:p></o:p>
We are currently developing a Web Part for a
dashboard that connects from SharePoint 2010 to Project Server, we are trying
to connect via the PSI web service and fetch the project data but it is giving
the same error "The request failed with HTTP
status 401: Unauthorized". We are having a huge
issue with gaining authorization through the PSI and cannot figure out what the
problem is. We are using Project Server 2010, SharePoint 2010 and Visual Studio
2010.<o:p></o:p>
The person developing this has administrative
rights on both servers and it is running on his account. However, this is his
first experience with Project Server. Could some provide some guidance?<o:p></o:p>
Does anyone have any suggestions?<o:p></o:p>
Thanks,<o:p></o:p>
Aba
<o:p></o:p>Hi,
Have the credentials been set for the web service? Or are you trying to pass the credentials of the user accessing the webpart? In the second case, the user must have permissions in project server
It would be useful if you can share the part of the code that fails
Paul -
The request failed with HTTP status 401: Unauthorized Invoke Webservice
I want Adding a Web reference dynamically at Runtime follow
SecurityPermissionAttribute(SecurityAction.Demand, Unrestricted = true)]
internal static object CallWebService(string webServiceAsmxUrl, string serviceName, string methodName, object[] args)
System.Net.
WebClient client = new System.Net.WebClient();
client.Credentials =
new NetworkCredential("username", "pass");
// Connect To the web service
System.IO.
Stream stream = client.OpenRead(webServiceAsmxUrl + "?wsdl");
// Now read the WSDL file describing a service.
ServiceDescription description = ServiceDescription.Read(stream);
///// LOAD THE DOM /////////
// Initialize a service description importer.
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
importer.ProtocolName =
"Soap12"; // Use SOAP 1.2.
importer.AddServiceDescription(description,
null, null);
// Generate a proxy client.
importer.Style =
ServiceDescriptionImportStyle.Client;
// Generate properties to represent primitive values.
importer.CodeGenerationOptions = System.Xml.Serialization.
CodeGenerationOptions.GenerateProperties;
// Initialize a Code-DOM tree into which we will import the service.
CodeNamespace nmspace = new CodeNamespace();
CodeCompileUnit unit1 = new CodeCompileUnit();
unit1.Namespaces.Add(nmspace);
// Import the service into the Code-DOM tree. This creates proxy code that uses the service.
ServiceDescriptionImportWarnings warning = importer.Import(nmspace, unit1);
if (warning == 0) // If zero then we are good to go
// Generate the proxy code
CodeDomProvider provider1 = CodeDomProvider.CreateProvider("CSharp");
// Compile the assembly proxy with the appropriate references
string[] assemblyReferences = new string[5] { "System.dll", "System.Web.Services.dll", "System.Web.dll", "System.Xml.dll", "System.Data.dll" };
CompilerParameters parms = new CompilerParameters(assemblyReferences);
CompilerResults results = provider1.CompileAssemblyFromDom(parms, unit1);
// Check For Errors
if (results.Errors.Count > 0)
foreach (CompilerError oops in results.Errors)
System.Diagnostics.
Debug.WriteLine("========Compiler error============");
System.Diagnostics.
Debug.WriteLine(oops.ErrorText);
throw new System.Exception("Compile Error Occured calling webservice. Check Debug ouput window.");
// Finally, Invoke the web service method
object wsvcClass = results.CompiledAssembly.CreateInstance(serviceName);
MethodInfo mi = wsvcClass.GetType().GetMethod(methodName);
return mi.Invoke(wsvcClass, args);
else
return null;
When i call CallWebService method , it is error
The request failed with HTTP status 401: Unauthorized.
Exception Details: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
Source Error:
Line 1880: MethodInfo mi = wsvcClass.GetType().GetMethod(methodName);
Line 1881:
Line 1882: return mi.Invoke(wsvcClass, args);
Help me solve this problem.
ThanhksThank advance
I tried it, but it till error
Stack Trace:
[WebException: The request failed with HTTP status 401: Unauthorized.]
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +431201
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +204
HSCVWS.HelloWorld() +31
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +71
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +350
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +19
WsProxy.CallWebService(String webServiceAsmxUrl, String serviceName, String methodName, Object[] args) in d:\ViDu01\ttt.aspx.cs:1882
ttt.Page_Load(Object sender, EventArgs e) in d:\ViDu01\ttt.aspx.cs:27
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2009-06-09 02:43:10
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2009-06-09 02:43:10 192.168.2.46 GET /_vti_bin/testwebservice.asmx wsdl 80 - 192.168.x.xx - 200 0 0
2009-06-09 02:43:13 192.168.2.46 POST /_vti_bin/testwebservice.asmx - 80 - 192.168.x.xx Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.3053) 401 5 0
2009-06-09 02:43:16 192.168.2.46 GET /_vti_bin/testwebservice.asmx wsdl 80 - 192.168.x.xx - 200 0 0
2009-06-09 02:43:17 192.168.2.46 POST /_vti_bin/testwebservice.asmx - 80 - 192.168.x.xx Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.3053) 401 5 0
2009-06-09 02:44:42 192.168.2.46 POST /_vti_bin/testwebservice.asmx - 80 servername\username 192.168.x.xx Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+2.0.50727.3053) 200 0 0 -
Hi All,
My Web application is FBA application and I am using the lists.asmx services in my custom webpart. To run this lists.asmx service in FBA enabled site we need to use Authentication.asmx service..
I referred this link:
http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/21867e28-75d5-42c8-850b-bfb5c5894eed .
I wrote a code as mentioned in this article but now I am getting error "The request failed with HTTP status 401: Unauthorized " for Authentication.asmx service itself. Can somebody help me why it is not working even everything looks
correct?
Thank you.
Regards,
Rahul Shinde.Hi Rahul,
Give permissions to the user on the web application.
Central Admin -->Application Management --> Application Security -->Policy for web application --> Select the
web application --> Add User
For more information, refer to
http://microsoftdev.blogspot.com/2009/10/sharepoint-web-services-access-give.html
http://www.codeproject.com/Articles/24244/Access-a-Forms-Based-SharePoint-Site-s-Web-Service
Best Regards.
Kelly Chen
TechNet Community Support
Maybe you are looking for
-
How do i connect my powerbook G3 to the internet?
I recieved a Mac Powerbook G3 to take with me to iran to give to a less fortunate family but i have no idea how to connect to the internet (for updates and general usage) as the os is really old (10.2) can somebody please give me step by step instruc
-
Menu not looping and titles not showing up
Hello, I made some dvd\s which looked good before i send them to the guy who duplicates them for me and he noticed some issues i cannot figure out. If i could get some help or directions that would be great. i have included screen shots below the que
-
got a new macbook pro with lion on... when i import cd i cant get track names ... how do i go about getting names for tracks
-
Problem in installation of free SSL certificate on Weblogic using keytool
We tried to install SSL certificate on weblogic certificate using Keystore ..but it is giving error in console at startup and server shutdowns automatically... Steps followed:- 1) To generate keystore and private key and digital cerficate:- keytool -
-
Hello, I somehow managed to get EasyTag to open the links in Gnome's Places menu, but it's driving me insane. I've tried: -removing EasyTag, which doesn't fix the problem, and leaves me with the error "Could not open location file:///home/james" -set