
npoi做的excel导出,本地测试各种正常,服务器iis7.0运行报错(空指针) 30
废话不多说,直接上代码,求大神解救,已崩溃(我本地vs测试或者本地iis测试没有问题,只有拿到服务器上出现了报错)billview.aspx.cs//导出按钮protec...
废话不多说,直接上代码,求大神解救,已崩溃(我本地vs测试或者本地iis测试没有问题,只有拿到服务器上出现了报错)
billview.aspx.cs
//导出按钮
protected void exp_Click(object sender, EventArgs e)
{
BillEntity be = InitEntity();
MemoryStream ms = ExcelTool.getDataExcel(be);
ExcelTool.exportByWeb(ms,HttpContext.Current,"B单工作汇总");
}
//excelTool.cs
//获取数据,并封装为memoryStream(我确定查到了数据)
public static MemoryStream getDataExcel(BillEntity be){。。。}
//输出到浏览器
public static void exportByWeb(MemoryStream ms, HttpContext context, string fileName)
{
if (context.Request.Browser.Browser == "IE")
{
fileName = HttpUtility.UrlEncode(fileName);
context.Response.Clear();
context.Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName + ".xlsx");
context.Response.AddHeader("Content-Transfer-Encoding", "binary");
context.Response.ContentType = "application/vnd.ms-excel";
//解决提示发现不可读取内容的错误提示
context.Response.AddHeader("Content-Length", ms.ToArray().Length.ToString());
context.Response.BinaryWrite(ms.GetBuffer());
context.Response.End();
}
}
点击按钮出现的错误(但实际调试查询时,查询的数据是没有问题的(ms对象)),
还有可能出问题的就是HttpContext,调试过程发现了这个错误(错误信息:
context.currentnotfication 引发了 System.PlatformNotSupportedException)
网上查了一大堆,说IIs需要最低.net3.0和集成方式,这个我都满足了,权限什么的我也调了,所以真不知道为什么了 展开
billview.aspx.cs
//导出按钮
protected void exp_Click(object sender, EventArgs e)
{
BillEntity be = InitEntity();
MemoryStream ms = ExcelTool.getDataExcel(be);
ExcelTool.exportByWeb(ms,HttpContext.Current,"B单工作汇总");
}
//excelTool.cs
//获取数据,并封装为memoryStream(我确定查到了数据)
public static MemoryStream getDataExcel(BillEntity be){。。。}
//输出到浏览器
public static void exportByWeb(MemoryStream ms, HttpContext context, string fileName)
{
if (context.Request.Browser.Browser == "IE")
{
fileName = HttpUtility.UrlEncode(fileName);
context.Response.Clear();
context.Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName + ".xlsx");
context.Response.AddHeader("Content-Transfer-Encoding", "binary");
context.Response.ContentType = "application/vnd.ms-excel";
//解决提示发现不可读取内容的错误提示
context.Response.AddHeader("Content-Length", ms.ToArray().Length.ToString());
context.Response.BinaryWrite(ms.GetBuffer());
context.Response.End();
}
}
点击按钮出现的错误(但实际调试查询时,查询的数据是没有问题的(ms对象)),
还有可能出问题的就是HttpContext,调试过程发现了这个错误(错误信息:
context.currentnotfication 引发了 System.PlatformNotSupportedException)
网上查了一大堆,说IIs需要最低.net3.0和集成方式,这个我都满足了,权限什么的我也调了,所以真不知道为什么了 展开
1个回答
展开全部
请检查你的IIS X86还是X64,,,
如果你X86开发,但是你ISS没设置X86的支持,而是X64 那么肯定不行了。
反之也一样, X64开发,而IIS是X86的,那么也不行
如果你X86开发,但是你ISS没设置X86的支持,而是X64 那么肯定不行了。
反之也一样, X64开发,而IIS是X86的,那么也不行
追问
你好,非常感谢的您能回答我的问题,我用的win764位,服务器2008r264位,都是iis732位, 没存在您说的问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |