Reporting services 报表服务登录

Reporting services 报表服务登录,reporting-services,windows-server-2012,Reporting Services,Windows Server 2012,我有一个问题,无法从应用程序登录http://*/ReportServer/ReportExecution2005.asmx或http://*/ReportServer/ReportService2005.asmx。我可以将URL放在浏览器中并登录,然后运行应用程序,它将执行它应该执行的操作,但无法使用以下命令登录: public class MyReportRenderer { private rs2005.ReportingService2005 rs; private rs

我有一个问题,无法从应用程序登录http://*/ReportServer/ReportExecution2005.asmx或http://*/ReportServer/ReportService2005.asmx。我可以将URL放在浏览器中并登录,然后运行应用程序,它将执行它应该执行的操作,但无法使用以下命令登录:

public class MyReportRenderer
{
    private rs2005.ReportingService2005 rs;
    private rs2005Execution.ReportExecutionService rsExec;

    public void RenderTest(String matchedCaseNumber)
    {
        string HistoryID = (string)null;
        string DeviceInfo = (string)null;
        string MimeType = string.Empty;
        string Encoding = string.Empty;
        string Extension = string.Empty;
        ReportGenerator.rs2005Execution.Warning[] Warnings = (ReportGenerator.rs2005Execution.Warning[])null;
        string[] StreamIds = (string[])null;
        this.rs = new ReportingService2005();
        this.rsExec = new ReportExecutionService();
        //this.rs.Credentials = CredentialCache.DefaultCredentials;
        //this.rsExec.Credentials = CredentialCache.DefaultCredentials;

        this.rs.Credentials = new System.Net.NetworkCredential("****", "****", "WIN-2MUFL6FJSPL");
        this.rsExec.Credentials = new System.Net.NetworkCredential("****", "****", "WIN-2MUFL6FJSPL");
        this.rs.Url = "****/ReportServer/ReportService2005.asmx";
        this.rsExec.Url = "****/ReportServer/ReportExecution2005.asmx";

        try
        {
            // Load the selected report.
            this.rsExec.LoadReport("/LawDept/LawDeptTIC", HistoryID);

            // Set the parameters for the report needed.

            rs2005Execution.ParameterValue[] parameters = new rs2005Execution.ParameterValue[1];
            parameters[0] = new rs2005Execution.ParameterValue();
            parameters[0].Name = "CaseNumberKey";
            parameters[0].Value = matchedCaseNumber;

            rsExec.SetExecutionParameters(parameters, "en-us");

            // get pdf of report 
            byte[] buffer = this.rsExec.Render("PDF", DeviceInfo, out Extension, out MimeType, out Encoding, out Warnings, out StreamIds);
            DataClasses1DataContext classes1DataContext = new DataClasses1DataContext();
            Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => c.Description)));
            string str1 = Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => c.Summary)));
            string str2 = Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => string.Format("{0:C}", (object)c.Total))));
            string str3 = Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => c.BRTNumber)));
            MailMessage message = new MailMessage("Reports@aalacquest.com", Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => c.Email))), "Report for Property " + Queryable.SingleOrDefault<string>(Queryable.Select<vw_ProductClientInfo, string>(Queryable.Where<vw_ProductClientInfo>((IQueryable<vw_ProductClientInfo>)classes1DataContext.GetTable<vw_ProductClientInfo>(), (Expression<Func<vw_ProductClientInfo, bool>>)(c => c.CaseNumberKey == matchedCaseNumber)), (Expression<Func<vw_ProductClientInfo, string>>)(c => c.Premises))), "Tax Information Certificate.");
            MailAddress mailAddress = new MailAddress("george.greiner@aalacquest.com");
            ((Collection<MailAddress>)message.CC).Add(mailAddress);
            SmtpClient smtpClient = new SmtpClient("localhost");
            message.Attachments.Add(new Attachment((Stream)new MemoryStream(buffer), string.Format("{0}" + str3 + ".pdf", (object)"BRT")));
            smtpClient.Send(message);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
}
公共类MyReportRenderer
{
私人rs2005.ReportingService 2005 rs;
私有rs2005Execution.ReportExecutionService rsExec;
public void RenderTest(字符串匹配CaseNumber)
{
字符串HistoryID=(字符串)null;
字符串DeviceInfo=(字符串)null;
string MimeType=string.Empty;
字符串编码=string.Empty;
字符串扩展名=string.Empty;
ReportGenerator.rs2005Execution.Warning[]Warnings=(ReportGenerator.rs2005Execution.Warnings[])null;
字符串[]StreamIds=(字符串[])null;
this.rs=new reportingservice 2005();
this.rsExec=新的ReportExecutionService();
//this.rs.Credentials=CredentialCache.DefaultCredentials;
//this.rsExec.Credentials=CredentialCache.DefaultCredentials;
this.rs.Credentials=新系统.Net.NetworkCredential(“****”、“****”、“WIN-2MUFL6FJSPL”);
this.rsExec.Credentials=new System.Net.NetworkCredential(“****”、“****”、“WIN-2MUFL6FJSPL”);
this.rs.Url=“**/ReportServer/ReportService2005.asmx”;
this.rsExec.Url=“**/ReportServer/ReportExecution2005.asmx”;
尝试
{
//加载所选报告。
这个.rsExec.LoadReport(“/LawDept/LawDeptTIC”,HistoryID);
//设置所需报告的参数。
rs2005Execution.ParameterValue[]参数=新的rs2005Execution.ParameterValue[1];
参数[0]=新的rs2005Execution.ParameterValue();
参数[0]。Name=“CaseNumberKey”;
参数[0]。值=matchedCaseNumber;
rsExec.SetExecutionParameters(参数“en-us”);
//获取报告的pdf格式
byte[]buffer=this.rsExec.Render(“PDF”、DeviceInfo、out扩展名、out MimeType、out编码、out警告、out streamid);
DataClasses1DataContext classes1DataContext=新DataClasses1DataContext();
Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(表达式)(c=>c.CaseNumberKey==matchedCaseNumber)),(表达式)(c=>c.Description));
字符串str1=Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(表达式)(c=>c.CaseNumberKey==matchedCaseNumber)),(表达式)(c=>c.Summary));
string str2=Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(Expression)(c=>c.CaseNumberKey==matchedCaseNumber)),(Expression)(c=>string.Format({0:c},(object)c.Total));
字符串str3=Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(表达式)(c=>c.CaseNumberKey==matchedCaseNumber)),(表达式)(c=>c.BRTNumber));
MailMessage=新的MailMessage(“Reports@aalacquest.com,Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(Expression)(c=>c.CaseNumberKey==matchedCaseNumber)),(Expression)(c=>c.Email)),“属性报告”+Queryable.SingleOrDefault(Queryable.Select(Queryable.Where((IQueryable)classes1DataContext.GetTable(),(表达式)(c=>c.CaseNumberKey==matchedCaseNumber)),(表达式)(c=>c.Premises)),“税务信息证书”;
MailAddress MailAddress=新的邮寄地址(“乔治。greiner@aalacquest.com");
((Collection)message.CC).Add(mailAddress);
SmtpClient SmtpClient=新SmtpClient(“本地主机”);
message.Attachments.Add(新附件((流)新内存流(缓冲区),string.Format(“{0}”+str3+”.pdf),(对象“BRT”));
发送(消息);
}
捕获(例外情况除外)
{
Show(例如ToString());
}
}
}

如果您能帮助我找出无法登录的原因,我们将不胜感激。这些凭据当然是有效的。

除非您的功能中有其他不明显的东西依赖于ReportingService2005,否则您应该能够仅使用rsExec=new ReportExecution2005.ReportExecutionService()完成上述过程中的所有操作。渲染不需要rs凭据。在应用程序中运行此操作时,如果不按照您描述的那样通过url登录,将返回什么?