Пока я строю свое решение, он показывает следующую ошибку:
"System.Web.HttpRequest" не содержит определения для "RequestContext", и не может быть найден метод расширения "RequestContext", принимающий первый аргумент типа "System.Web.HttpRequest" (вам не хватает директивы 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
HttpRequest.RequestContext
не был представлен до версии.NET версии 4, как можно увидеть в разделе "Информация о версии" официальной документации.
Я предполагаю, что вы используете.NET 2.0 или 3.5, поэтому у вас нет доступа к этому свойству. Вы можете проверить это, щелкнув правой кнопкой мыши на своем проекте веб-сайта, выбрав " Свойства" в раскрывающемся списке и проверив параметр " Целевая структура" на вкладке " Приложение ".
У меня была аналогичная проблема. В моем случае это было связано с неправильным собранием, которое было передано (да, глупая ошибка..). Который был *C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Http.dll*
.
Затем я установил пакет Microsoft.AspNet.WebApi.Core, используя команду Install-Package Microsoft.AspNet.WebApi.Core.
Затем он будет ссылаться на *~\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll*
.