c# – “System.Web.HttpContext无法序列化,因为它没有无参数构造函数.”

我创建了一个其他网站可以用来在我的数据库中存储错误的Web服务.然后,他们可以访问我的网站查看他们的错误,搜索错误,过滤错误等.但是,我的Web服务出现以下错误:

System.Web.HttpContext无法序列化,因为它没有无参数构造函数.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.InvalidOperationException:System.Web.HttpContext无法序列化,因为它没有无参数构造函数.

Web服务包含以下功能:

[WebMethod]
public static void LogError(HttpContext context, Exception exception, string APIKey)
{
    //Log the error
}

使用Web服务记录异常的外部站点在global.asax文件中包含以下代码:

void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs

    WebService.Errors.ErrorHandler.LogError(HttpContext.Current, Server.GetLastError(), "NOLDFHOI");
}

如何从网站上将HttpContext从他们的网站获取到我的功能中?

最佳答案
您无法序列化HttpContext.您最好的选择是创建一个自定义类来封装您想要从HttpContext中获取的信息并将其传递到WebMethod中.

转载注明原文:c# – “System.Web.HttpContext无法序列化,因为它没有无参数构造函数.” - 代码日志