【发布时间】:2021-03-28 20:23:04
【问题描述】:
更新
我正在一个 ASP.NET Web 窗体项目中试验一些代码,但它没有按预期工作。
我在 ASP.NET 中有一个简单的 Web 处理程序,它接受查询字符串,然后调用类上的公共方法来更新值。这是更新的代码:
<%@ WebHandler Language="C#" Class="Test" %>
using System;
using CareAboutAir;
using System.Web;
public class Test : IHttpHandler {
public void ProcessRequest ( HttpContext ctx ) {
try {
var data = (string)ctx.Request.QueryString["p_type"];
if ( data.ToLower ( ) == "fp" )
SiteTrafficDB.AddView ( DateTime.Today, out _, out _ );
ctx.Response.ContentType = "text/plain";
ctx.Response.Write ( "Hi!" );
}
catch {
ctx.Response.ContentType = "text/plain";
ctx.Response.Write ( "Hi!" );
}
}
public bool IsReusable {
get {
return false;
}
}
}
这段代码(如上所示)什么都不做。我没有语法高亮或 Intellisense,当我的网页调用它时它会被忽略。我在浏览器控制台中也没有收到任何错误。
我的目标是让 web 处理程序可以放在自己的文件夹中,而不必放在根目录中。我有这个文件的另一个版本(顶部没有声明),只要它位于 Web 应用程序的根文件夹中,它就可以正常执行,但是如果我把它放在其他任何地方,它就会被忽略并且不会执行(我不要认为它甚至在运行时编译)。
有什么帮助吗?
【问题讨论】:
-
你有这个处理程序附带的 .ashx 文件吗?还是在web.config中注册的?
-
这是来自 .ashx 文件的代码隐藏代码。仅包含类声明。