在我构建解决方案时,它显示以下错误:
'System.Web.HttpRequest'不包含'RequestContext'的定义,并且没有可以找到接受类型'System.Web.HttpRequest'的第一个参数的扩展方法'RequestContext'(你是否缺少using指令或汇编参考?)
我错过了什么dll或引用!
代码:
public void ProcessRequest(HttpContext context)
{
try
{
HttpRequest request = context.Request;
string methodName = "";
if (request.RequestContext.RouteData.Values["methodName"] != null)
{
methodName = request.RequestContext.RouteData.Values["methodName"].ToString();
}
else
{
methodName = request.RawUrl.Substring(request.RawUrl.LastIndexOf("/") + 1);
}
//if form post was made way to get values
//context.Request.Form["firstName"]; //parameter key
string json = new System.IO.StreamReader(context.Request.InputStream).ReadToEnd();
JavaScriptSerializer jss = new JavaScriptSerializer();
ServiceProcesser process = new ServiceProcesser(typeof(AspxCommerce.AdminNotification.AdminNotificationController), json, methodName);
var response = process.Invoke();
if (response != null)
{
context.Response.ContentType = "application/json";
context.Response.Write(jss.Serialize(new { d = response }));
}
else
{
context.Response.ContentType = "application/json";
context.Response.Write(jss.Serialize(new { d = "" }));
}
}
catch (Exception ex)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
context.Response.ContentType = "application/json";
var resp = new { d = ex.Message.ToString() };
context.Response.Write(jss.Serialize(resp));
}
}
如需完整资源,您可以浏览我的github回购: https://github.com/Milstein/Ratamata
答案 0 :(得分:3)
HttpRequest.RequestContext
,可以在official documentation的“版本信息”部分中看到。
我的猜测是您使用的是.NET 2.0或3.5,因此您无权访问该属性。您可以通过右键点击您的网站项目,从下拉列表中选择属性,然后选中应用标签上的目标框架选项来检查
答案 1 :(得分:0)
我有类似的问题。在我的情况下,这是由于错误的程序集被引用(是的,一个愚蠢的错误......)。
这是*C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Http.dll*
。
然后我使用安装包Microsoft.AspNet.WebApi.Core 命令安装 Microsoft.AspNet.WebApi.Core 包。
然后它会引用*~\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll*
。