我编写了一个 HttpHandler,当我在 ASP.NET 开发服务器上测试它时它工作得很好。
在我的 Web.Config 中,我有:
<add verb="*" path="Files.zip" type="MyNamespace.Zip, App_Code" />
在我的 App_Code 文件夹中的 Handler 中,我有以下代码。不幸的是,由于 ASP.NET 开发服务器将所有内容都转储到根目录中—— http://localhost:1234/Files.zip工作得很好。但是,我正在尝试部署到 URL 类似于http://myProjects/project的 Intranet 服务器。当我将浏览器指向http://myProjects/project/Files.zip 时,我得到一个 404。如何调整网络配置以获得正确的路径?还是其他地方的解决方案?我已经尝试在路径前加上“~/”和“./”。
(Namespace MyNamespace, file Zip.cs)
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/octet-stream";
DirectoryInfo di = new DirectoryInfo(context.Server.MapPath("files"));
FileInfo[] fileinf = di.GetFiles();
ZipFile zip = new ZipFile();
foreach(FileInfo fi in fileinf)
{
zip.AddFile(fi.FullName, "");
}
zip.Save(context.Response.OutputStream);
}