gpt4 book ai didi

c# - 如何确定在 Web 服务中调用了什么 WebMethod

转载 作者:行者123 更新时间:2023-11-30 16:36:54 27 4
gpt4 key购买 nike

情况是这样的。我有一个 asp.net web 服务应用程序...比如说一个名为 api.asmx 的页面

在后面的代码中我有几个方法,例如:

[WebMethod(Description="Method1")]
public int GetSomething(int num1, int num2){
try{
return SomeObject.DatabaseCall.DoSomething(num1, num2);
}
catch(Exception ex){
object[] pars = new object[] { num1, num2 };
LogError("GetSomething", pars, ex);
}
}

[WebMethod(Description="Method2")]
public int GetSomething2(string w, string j, int f){
try{
return AnotherObject.DoSomething(w, j, f);
}
catch(Exception ex){
object[] pars = new object[] { w, j, f };
LogError("GetSomething2", pars, ex);
}
}

当然这只是两个简单的例子,如果抛出异常,我可以记录方法调用和传入的参数。

还有其他方法吗?有什么方法可以提取被调用的方法和/或参数。我想我希望有人会告诉我,我可以拥有某种功能,例如:

LogError(ex);

在该函数中,我可以访问一些服务器或环境变量,这些变量将公开被调用的方法。可能类似于 CurrentContext.WebServiceCall.Magic 属性...我是否需要将所有调用包装在 try/catch 中,然后键入方法名称和参数,或者是否有其他方法来访问此信息。

希望这个问题不要太愚蠢。

最佳答案

任何未处理的异常都将冒泡到 Global.asax 文件中的 Application_Error 事件。从那里,您可以调用 Server.GetLastError() 来检索 Exception 实例。

一旦出现异常,就可以查看堆栈跟踪。您还可以访问 Request 对象,以便准确查看来自客户端的内容。

关于c# - 如何确定在 Web 服务中调用了什么 WebMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/270927/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com