0

我有一个名为 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);

        }
4

1 回答 1

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);
        }

    }
于 2012-11-12T19:54:40.667 回答