Je reçois l'erreur "La requête a échoué avec le statut HTTP 401: non autorisé" chaque fois que j'essaie de lister les rapports sur mon serveur de rapports. Ce qui est bizarre, c'est que quand je lance l'application asp.net sur ma machine dev, j'atteins l'url du service web de reporting du serveur (http://www.example.com/reports/reportservice2005.asmx?wsdl) mais quand l'application asp.net est installée sur le serveur (exécutant iis 7) url je reçois l'erreur. Voici ma mise en place:Reporting Services 2008: "Statut HTTP 401: non autorisé" Problème
serveur:
Reporting Services SQL Server 2008 (non R2)
url service Web: http://www.example.com/reports/reportservice2005.asmx?wsdl
client
a créé un ReportingServices2005.cs proxy
Web.config a
code à la liste des rapports:
<asp:ListView ID="lvReportList" runat="server">
<LayoutTemplate>
<ul>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<asp:HyperLink runat="server" ID="hpReportLink" NavigateUrl='<%#Eval("Url")%>'><%#Eval("Name")%></asp:HyperLink>
</li>
</ItemTemplate>
<EmptyDataTemplate>
<div>
No reports to display.
</div>
</EmptyDataTemplate>
code Derrière:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string rWebServiceUrl = ConfigurationManager.AppSettings["RSWebserviceUrl"];
string reportServerFolder = ConfigurationManager.AppSettings["ReportServerFolder"];
string domain = ConfigurationManager.AppSettings["RSDomain"];
string userName = ConfigurationManager.AppSettings["RSUsername"];
string password = ConfigurationManager.AppSettings["RSPassword"];
objRS.Url = rWebServiceUrl;
objRS.Credentials = new NetworkCredential(userName, password, domain);
ReportingServices2005.CatalogItem[] items = objRS.ListChildren(reportServerFolder, false);
var reportList = from p in items
select new
{
Name = p.Name,
Url = String.Format("{0}?reportPath={1}/{2}", ReportViewerUrl, reportServerFolder, p.Name)
};
lvReportList.DataSource = reportList;
lvReportList.DataBind();
}
}
Qu'est-ce que 'objRS' ici? –