Reporting services 报表服务登录
我有一个问题,无法从应用程序登录http://*/ReportServer/ReportExecution2005.asmx或http://*/ReportServer/ReportService2005.asmx。我可以将URL放在浏览器中并登录,然后运行应用程序,它将执行它应该执行的操作,但无法使用以下命令登录: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
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登录,将返回什么?