我有一个HttpHandler类(实现IHttphandler),其中为web.config中的处理程序定义的路径是* .jpg。我在页面中请求Jpg图像。在HTTP处理程序中,我正在写入文件系统中的文件。我错误地写了一个不存在的目录。这应该抛出一个异常,但执行只是继续。当然没有写入文件。但是,如果我给出一个正确的目录,文件写得正确。有什么特别的关于HttpHandler Exceptions。 查看部分代码
public void ProcessRequest(HttpContext context){
File.WriteAllLines(context.Request.ApplicationPath+@"\"+"resul.log",new string[]{"Entered JPG Handler"});
如果我在File.WriteAllLines语句上放置一个断点然后跳过它我可以看到发生异常。
答案 0 :(得分:0)
ASP.NET可能只是拦截像.aspx这样的ASP.NET文件扩展名,而不是处理其他类型的内容(也就是说你的jpeg可能完全被跳过)。
These are the regular file extensions mapped to ASP.NET for processing
您可能必须将IIS中的其他文件扩展名(如.jpeg,.jpg等)映射到ASP.NET处理器 - This Microsoft article tells how。
答案 1 :(得分:0)
Request.Application返回服务器上应用程序的虚拟应用程序根路径。例如:“/ YourApp”,而不是“C:\ inetpub \ wwwroot \ YourApp。”
可能发生的事情是 File.WriteLine(...) 实际上是在某处写文件,可能与您的网络服务器进程位于同一文件夹中。
编辑:以下是一些可能的地方:
如果使用内置VS2008网络服务器
C:\Program Files (x86)\Common
Files\microsoft shared\DevServer\9.0
如果使用内置VS2010网络服务器
C:\Program Files (x86)\Common
Files\microsoft shared\DevServer\10.0
如果使用IIS
C:\Windows\System32\inetsrv
或C:\Windows\SysWOW64\inetsrv