我有一个名为API Web的Live网站,使用ASP.NET MVC 4构建。 此应用程序将为其他网站提供JavaScript文件。 我有20个网站要求使用JavaScript。
但是,有时这个API Web正在崩溃,我很难再次使用该应用程序。 我不知道为什么会这样,我怎么能解决这个问题?
修改
这是控制器,如果请求路径的网站说http://api.example.com/get/js/folderA?js=jquery.js 该应用程序将返回一个JavaScript内容。 但是,请求网站加载速度会变慢。我认为如果API Web请求太多,它将会崩溃(瓶颈问题)。
public ActionResult js(string id, string js) {
string fileLocation = Server.MapPath("~/content/" + id + "/js/" + CryptKeys.Decrypt(js) + "");
string contentType = "text/javascript";
var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var stream = (Stream)(file);
return new FileStreamResult(stream, contentType);
}
答案 0 :(得分:0)
有可能您没有关闭System.IO.File.Open
类打开的文件流,这可能导致下一次调用以在抛出异常时返回相同的文件。而且由于未处理异常,最终可能会导致网站关闭。
您是否在事件查看器中检查了错误日志?
根据您在下面的输入,您可以尝试这段代码吗?请注意我添加的using
块
public ActionResult js(string id, string js) {
string fileLocation = Server.MapPath("~/content/" + id + "/js/" + CryptKeys.Decrypt(js) + "");
string contentType = "text/javascript";
using(var file = System.IO.File.Open(fileLocation, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
var stream = (Stream)(file);
return new FileStreamResult(stream, contentType);
}
}