我想通过 httphandler 运行我的个人网站(我在家里有一个 web 服务器和静态 ip。)
最终,我会将数据访问层和域路由器合并到处理程序中,但现在,我只是尝试使用它返回静态网页内容。
我将处理程序映射到所有动词和路径,在 Windows 7 上的 IIS 7 中没有访问限制。
我在进程请求的开头添加了一个小文件日志记录。因为它是处理程序中的第一件事,所以我使用日志记录来告诉我处理程序何时被击中。
目前,处理程序只返回一个我已经编写好的网页。处理程序本身主要是这样的:
using (FileStream fs = new FileStream(Request.PhysicalApplicationPath + "index.htm",
FileMode.Open))
{
fs.CopyTo(Response.OutputStream);
}
我知道这对除了一个文件之外的任何东西都不起作用。
所以我的问题是:HTML 文件中包含指向某些图像的链接。我希望浏览器会返回服务器以获取这些图像作为新请求。我希望这些请求会失败(因为它们会被映射到 index.htm)。但我希望看到日志记录至少命中两次(并且可能递归命中)。但是,我只看到一个请求。网页出现,图像是“X”。
当我刷新浏览器时,我看到另一个请求通过,但仅针对根页面。该页面是基本的 HTML,我没有 asp.net 应用程序(我也不需要,我喜欢 HTML/CSS/JS)。
除了从浏览器发送的第一个请求之外,我还需要做什么?我认为我完全偏离了标准,因为我首先编写了一个 HTTP 模块,但奇怪的是得到了完全相同的行为。我想我需要指定一些响应标头,但在任何示例中都看不到。