J'ai une application qui se connecte à Reporting Services dans SQL Server 2008 R2.
L'erreur est la suivante:
System.Net.WebException: 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 (Ssortingng methodName, Object[] parameters) at Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.LoadReport (Ssortingng Report, Ssortingng HistoryID)
L'application est en cours d'exécution dans la production bien dans 2 clients différents , donc ce n'est pas un problème de encoding.
J'essaye de l'installer maintenant sur le server d'un client, qui emploie AD. Le server SQL et IIS sont tous dans la même machine, donc je ne me soucie pas vraiment de AD.
Il fonctionne si j'exécute IE en tant qu'administrateur, mais cela ne fonctionne pas avec les autres users. L'application ASP.NET se connecte à SSRS à l'aide d'un user créé dans la machine locale (appelée ReportingServicesUser ), membre du groupe ReportingServicesUser.
Les choses que j'ai essayées:
http://localhost
, http://computername
et http://domain.com
Pour reference, le code est ceci (version simplifiée):
var service = new ReportExecutionService(); service.Credentials = new NetworkCredential("ReportingServicesUser", "password"); service.Url = "http://computername:90/ReportServer/ReportExecution2005.asmx"; service.ExecutionHeaderValue = new ExecutionHeader(); var execInfo = new ExecutionInfo(); execInfo = service.LoadReport("path-to-the-report", null); ===> Here it throws the exception
J'ai lu beaucoup de messages et de pages à ce sujet, mais je ne peux pas get une réponse qui fonctionne pour moi.
OK, j'ai finalement dû changer le code pour:
rs.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
et ça a marché. Probablement il y a une autre solution mais je n'ai pas pu le découvrir.
Êtes-vous sûr d'avoir donné des permissions de navigation "ReportingServicesUser" pour le rapport spécifique dans ssrs? La requête ne l'a jamais fait au server, mais je vérifierais \ Reporting Services \ LogFiles juste pour être certain.
En outre, votre user "user de rapport" doit être défini sur le server de rapports avec les informations d'identification que vous envoyez.