2009-05-11 32 views
1

次のエラーが表示されます。 HTTPステータス401:要求が失敗しました。 URL:http://serverName/ReportServer/ReportService2005.asmx要求がHTTPステータス401で失敗しました

私は1つのサーバーとレポートサービスでWebアプリケーションを使用しています。その他のサーバーはWindows 2003をインストールしました。クレデンシャルのユーザーは、私がレポートサービスと同じReportinsサービスサービス中古。また、このユーザはRSSロールを持っており、データベースの所有者であり、このユーザはアプリケーションプール内にあります。私のコードでは間違っていますか? imporsonationを使用してレポートサービスWebサービスにアクセスする方法は何ですか?

{ 

      ReportingService2005 rs = new ReportingService2005(); 

      try 
      { 

       rs.Url = ConfigurationSettings.AppSettings["WSRS"].ToString(); 
       //rs.Credentials = System.Net.CredentialCache.DefaultCredentials; 

       rs.PreAuthenticate = true; 

       rs.Credentials = new NetworkCredential(RS.User_Name,RS.Pass_Word,RS.Domain) 
        ); 


       //string report = "/SampleReports/Employee Sales Summary"; 
       string desc = "Added by workflow automatically"; 
       string eventType = "TimedSubscription"; 
       string scheduleXml = string.Empty; 

       /*ExtentionSettings Values*/ 
       List<ParameterValue> ExtensionSettingsparmList = new List<ParameterValue>(); 
       foreach (String name in colExtensionSettings.AllKeys) 
       { 
        ExtensionSettingsparmList.Add(new ParameterValue() { Name = name, Value = colExtensionSettings[name].ToString() }); 
       } 

       ExtensionSettings extSettings = new ExtensionSettings(); 
       extSettings.ParameterValues = ExtensionSettingsparmList.ToArray(); // extensionParams; 
       extSettings.Extension = "Report Server Email"; 

       /*Parameters Values*/ 

       List<ParameterValue> parameterList = new List<ParameterValue>(); 

       foreach (String name in colParameters.AllKeys) 
       { 
        parameterList.Add(new ParameterValue() { Name = name, Value = colParameters[name].ToString() }); 
       } 

       scheduleXml = @"<ScheduleDefinition><StartDateTime>" + DateTime.Now.AddMinutes(1).ToString("s") + "</StartDateTime></ScheduleDefinition>"; 
       string matchData = scheduleXml; 

       return rs.CreateSubscription(report, extSettings, desc, eventType, matchData, parameterList.ToArray()); 
      } 

答えて

1

アプリケーションプールは、Webサイトへのアクセス権を持っている資格情報で実行されている必要があります。

このナレッジベースの記事は、解決策になるかもしれません。セキュリティを確保するために、適切なセキュリティアクセスを持つデータベース/アプリケーションにアクセスできる、作成したドメインユーザーとしてアプリケーションプールを実行します。