我有一个ExcelResult操作结果,根据Stephen Walther提示返回Microsoft Excel文档.基本上它只是将一个流写入响应.在调试VS 2010(ASP.NET Dev Server)时,它运行正常,但是当我在IIS 6框上运行它时,我收到以下错误:
未找到"GenerateExcel"视图或其主页.搜索了以下位置:〜/ Views/Home/GenerateExcel.aspx~/Views/Home/GenerateExcel.ascx~/Views/Shared/GenerateExcel.aspx~/Views/Shared/GenerateExcel.ascx
没有关联的View,因此没有文件,但不应该有.我究竟做错了什么?
UPDATE
通过简单地返回void而不是ActionResult,我不再有这个问题.我没有返回ExcelResult,而是明确地调用它的ExecuteResult方法,该方法正在写入输出流.
之前
public ActionResult GenerateExcel()
{
return this.Excel(parameters);
}
Run Code Online (Sandbox Code Playgroud)
后
public void GenerateExcel()
{
ExcelResult excelResult = this.Excel(parameters);
excelResult.ExecuteResult(null);
}
Run Code Online (Sandbox Code Playgroud)
在那之后,我的NTLM身份验证存在安全问题,但是他们"离开了"(意思是我希望他们回来).但就目前而言,一切正常.
我刚刚开始玩异步和等待.我有8个单独的数据库调用,有些依赖于其他调用.我希望能够启动3个异步方法,然后当某个1返回时,启动3个其他方法,然后当某个1返回时,再启动2个.我目前正在使用3个Parallel.Invoke方法来完成此任务,但每个并行必须等到ALL方法返回.我只关心1个方法返回,其他方法可以在后台运行直到await Task.WhenAll(t1,t2,t3,...,t6)最后. 有没有办法用async/await来解决这个问题?
我知道await不会阻塞,但它会停止执行我的main方法(带有8个db调用),直到从方法返回值(就像同步方法一样).
StackOverflow 上有一些关于协方差和逆变的很好的资源,但我似乎误解了逆变的基本原理.我希望这个例子有效:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
A a = new B();
B b = new A();
}
}
public class A
{
int id { get; set; }
}
public class B : A
{
}
Run Code Online (Sandbox Code Playgroud)
设置a到B的工作原理是协方差,但是将b设置为新的A会因编译错误而失败.即使进行显式转换仍然会在编译时生成错误.有没有办法做到这一点,还是我完全误解了逆变?