6

我创建了一个 Web 服务,其他站点可以使用它在我的数据库中存储错误。然后他们可以到我的站点查看他们的错误、搜索错误、过滤错误等。但是,我的 Web 服务出现以下错误:


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

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

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


Web 服务包含以下功能:

[网络方法]
public static void LogError(HttpContext context, Exception exception, string APIKey)
{
    //记录错误
}

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

void Application_Error(对象发送者,EventArgs e)
{
    // 发生未处理错误时运行的代码

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

如何将 HttpContext 从他们的站点获取到我的 Web 服务函数中?

4

2 回答 2

9

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

于 2009-11-12T17:28:15.913 回答
0

您将需要创建一个可序列化的类,用于保存您希望收集的信息。然后在该类上创建静态方法,该方法将创建该类的新实例并收集所需的信息。

它将是传递给 LogError 的这个新类。

于 2009-11-12T17:28:01.233 回答