代码之家  ›  专栏  ›  技术社区  ›  josephj1989

当需要异常时,ASP.NET httphandler未引发异常

  •  1
  • josephj1989  · 技术社区  · 15 年前

    我有一个httphandler类(实现ihtpHandler),其中web.config中为处理程序定义的路径是*.jpg。我正在请求在我的页面上显示JPG图像。在HTTP处理程序中,我正在写入文件系统中的一个文件。我错误地试图写入一个不存在的目录。这本应该引发一个异常,但执行只是继续进行,当然不会写入任何文件。但是如果我给出一个正确的目录,文件就被正确地写入了。关于httphandler异常有什么特别的地方吗? 参见部分代码

     public void ProcessRequest(HttpContext context){
    
            File.WriteAllLines(context.Request.ApplicationPath+@"\"+"resul.log",new string[]{"Entered JPG Handler"});
    

    如果我在file.writealllines语句上放置一个断点,然后单步执行该断点,就会看到发生异常。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Joe Philllips    15 年前

    Request.Application 返回服务器上应用程序的虚拟应用程序根路径。例如:“/yourapp”,而不是“c:\inetpub\wwwroot\yourapp”。

    可能发生的是 文件.writeline(…) 实际上,将文件写入某个位置,可能与Web服务器进程位于同一文件夹中。

    编辑: 这里有一些 可能的 检查地点:

    • 如果使用内置的VS2008 Web服务器

      C:\Program Files (x86)\Common Files\microsoft shared\DevServer\9.0

    • 如果使用内置的VS2010 Web服务器

      C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0

    • 如果使用IIS

      C:\Windows\System32\inetsrv C:\Windows\SysWOW64\inetsrv

        2
  •  0
  •   John K    15 年前

    ASP.NET可能只截取ASP.NET文件扩展名,如.aspx,而不处理其他类型的内容(例如,可能您的jpeg被完全跳过)。

    These are the regular file extensions mapped to ASP.NET for processing .

    您可能需要将IIS中的其他文件扩展名(如.jpeg、.jpg等)映射到ASP.NET处理器。- This Microsoft article tells how .