Asp.net mvc 4 使用MVC4的Rdlc不适用于IIS7

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

我不熟悉使用实体框架的MVC4。现在我正在做RDLC报告,这里我将参数传递给报告以过滤数据。它正在本地工作。当我在服务器上发布时,它不工作。它显示异常(处理请求时出错)。我找不到确切的错误。请帮我解决这个问题。提前谢谢。 这是我的控制器代码:

 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的更多信息