Asp.net mvc 4 使用MVC4的Rdlc不适用于IIS7
我不熟悉使用实体框架的MVC4。现在我正在做RDLC报告,这里我将参数传递给报告以过滤数据。它正在本地工作。当我在服务器上发布时,它不工作。它显示异常(处理请求时出错)。我找不到确切的错误。请帮我解决这个问题。提前谢谢。 这是我的控制器代码:Asp.net mvc 4 使用MVC4的Rdlc不适用于IIS7,asp.net-mvc-4,entity-framework-4,rdlc,Asp.net Mvc 4,Entity Framework 4,Rdlc,我不熟悉使用实体框架的MVC4。现在我正在做RDLC报告,这里我将参数传递给报告以过滤数据。它正在本地工作。当我在服务器上发布时,它不工作。它显示异常(处理请求时出错)。我找不到确切的错误。请帮我解决这个问题。提前谢谢。 这是我的控制器代码: var name = Convert.ToString(form["name"]); var date = Convert.ToString(form["cdate"]); var date
var name = Convert.ToString(form["name"]);
var date = Convert.ToString(form["cdate"]);
var dateList = Convert.ToDateTime(form["cdate"]);
string id = Convert.ToString(form["value"]);
//id = "PDF";
LocalReport lr = new LocalReport();
string path = Path.Combine(Server.MapPath("../Reports"), "DailyReport.rdlc");
if (System.IO.File.Exists(path))
{
lr.ReportPath = path;
}
else
{
return View("Index");
}
//Assigning the parameters to the list
List<ReportParameter> lst = new List<ReportParameter>();
ReportParameter rptName = new ReportParameter("rptname", name);
ReportParameter rptDate = new ReportParameter("rptdate", date);
lst.Add(rptName);
lst.Add(rptDate);
lr.SetParameters(lst);
var rptData =
from d in db.Tbl_DailyReport
where (d.CreatedOn == dateList)
join u in db.Tbl_Users on d.CreatedBy equals u.UserID
where (u.UserName == name)
join c in db.Tbl_Mst_City on u.UserCity equals c.CityId
join ds in db.Tbl_Mst_Designation on u.UserDesignation equals ds.DesignationID
select new
{
u.UserName,
c.CityName,
ds.Designation,
d.DailyReport,
d.Achivement,
d.ReportTime,
d.Comment,
d.CreatedOn
};
//Passing the parameters to the report
ReportDataSource rd = new ReportDataSource("DataSet_dr", rptData);
lr.DataSources.Add(rd);
lr.Refresh();
string reportType = id;
string mimeType;
string encoding;
string fileNameExtension;
string deviceInfo =
"<DeviceInfo>" +
" <OutputFormat>" + id + "</OutputFormat>" +
" <PageWidth>8.5in</PageWidth>" +
" <PageHeight>11in</PageHeight>" +
" <MarginTop>0.5in</MarginTop>" +
" <MarginLeft>0.5in</MarginLeft>" +
" <MarginRight>0.5in</MarginRight>" +
" <MarginBottom>0.5in</MarginBottom>" +
"</DeviceInfo>";
Warning[] warnings;
string[] streams;
byte[] renderedBytes;
renderedBytes = lr.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings);
return File(renderedBytes, mimeType);
var name=Convert.ToString(格式[“name”]);
var date=Convert.ToString(格式[“cdate”]);
var dateList=Convert.ToDateTime(格式[“cdate”]);
字符串id=Convert.ToString(格式[“值”]);
//id=“PDF”;
LocalReport lr=新的LocalReport();
字符串path=path.Combine(Server.MapPath(“../Reports”),“DailyReport.rdlc”);
if(System.IO.File.Exists(path))
{
lr.ReportPath=path;
}
其他的
{
返回视图(“索引”);
}
//将参数指定给列表
List lst=新列表();
ReportParameter rptName=新的ReportParameter(“rptName”,name);
ReportParameter rptDate=新的ReportParameter(“rptDate”,日期);
第一次添加(名称);
第一次添加(日期);
lr.设置参数(lst);
var rptData=
从db.Tbl_DailyReport中的d开始
其中(d.CreatedOn==日期列表)
在d.CreatedBy上的db.Tbl_用户中加入u等于u.UserID
其中(u.UserName==名称)
在db.Tbl\u Mst\u City中加入c。UserCity等于c.CityId
在db.Tbl\u Mst\u名称中加入ds。用户名称等于ds.SIGNATIONID
选择新的
{
u、 用户名,
c、 城市名称,
ds.名称,
d、 DailReport,
d、 成就,
d、 报告时间,
d、 评论,,
d、 CreatedOn
};
//将参数传递给报表
ReportDataSource rd=新的ReportDataSource(“DataSet_dr”,rptData);
lr.数据源添加(rd);
lr.Refresh();
字符串reportType=id;
字符串模拟类型;
字符串编码;
字符串文件名扩展名;
字符串设备信息=
"" +
“”+id+“”+
“8.5英寸”+
“11英寸”+
“0.5英寸”+
“0.5英寸”+
“0.5英寸”+
“0.5英寸”+
"";
警告[]警告;
字符串[]流;
字节[]渲染字节;
renderedBytes=lr.Render(
报告类型,
deviceInfo,
输出mimeType,
输出编码,
输出文件名扩展名,
流出的溪流,
发出警告);
返回文件(renderdbytes,mimeType);
不确定您想要什么,但在发布网站时,请尝试按以下方式设置RDLC报告的属性
构建操作=内容,
复制到输出目录=如果较新,则复制
并发布您的网站
您可以阅读有关发布RDLC的更多信息