行
发生异常ModifyProfileResp resp = BFGlobal.modifyProfile(req);
INTERNAL_ERROR,SoapHeaderException未处理
Error: System.Exception._COMPlusExceptionCode -532462766,
此代码基本上通过我的调用更新了Web服务上的用户信息。
public ModifyProfileResp ModifyProfile(string n_homeTelephone)
{
try
{
// Get Login Resp
LoginResp loginResp = LoginToBetfair("username", "password");
// Make a BFGS instance
BFGlobal = new BFGlobalService();
// Set up the request in [req]
ModifyProfileReq req = new ModifyProfileReq();
req.header = new APIRequestHeader();
req.header.sessionToken = loginResp.header.sessionToken;
req.homeTelephone = n_homeTelephone;
// Set up the response in [resp]
// Here is where Im getting thrown an exception..
ModifyProfileResp resp = BFGlobal.modifyProfile(req); // <-- Here Im getting thrown an exception
// return [resp] - which is the response from the call
// Just trying to print out errror codes
string mec = resp.minorErrorCode.ToString();
string ec = resp.errorCode.ToString();
return resp;
}
catch (Exception)
{
throw;
}
非常简单,制作请求标头,调用响应,传入req,然后我应该返回一些数据,但我不断在这一行上抛出异常。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
您正在远程网络服务中看到异常。
通过SOAP调用XML Web服务方法时抛出的异常,并且在处理SOAP标头期间发生异常。
可能您没有按照远程服务的要求设置标头。尝试从远程方面获得帮助。
尝试查看.InnerException
了解详情。
答案 1 :(得分:1)
首先,
不要这样做:
catch (Exception)
{
throw;
}
这是毫无意义的。如果你没有捕获,异常将自动被抛出一个级别,这就是你正在做的抛出。此外,如果您无法对异常执行某些操作(例如重试请求),那么最好不要让异常冒泡。
其次,尝试这样的事情:
catch (SoapHeaderException ex)
{
Debug.WriteLine(ex.Message);
}
这将捕获您正在处理的特定异常。此外,在Debug语句中设置断点。然后,您可以浏览异常的详细信息。您将能够看到堆栈跟踪,内部异常以及SoapHeaderException的thrower可能希望您查看的任何其他数据。
当您进行调试时,此信息通常很有用,例如,它可能会说“您忘记初始化磁通电容。”