C# 调用web服务时未处理SoapHeaderException
第行出现异常C# 调用web服务时未处理SoapHeaderException,c#,web-services,exception,C#,Web Services,Exception,第行出现异常 ModifyProfileResp resp = BFGlobal.modifyProfile(req); 内部错误,SoapHeaderException未处理 这段代码基本上是通过我的一个调用来更新web服务上的用户信息 public ModifyProfileResp ModifyProfile(string n_homeTelephone) { try { // Get Login Resp
ModifyProfileResp resp = BFGlobal.modifyProfile(req);
内部错误,SoapHeaderException未处理 这段代码基本上是通过我的一个调用来更新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;
}
public ModifyProfileResp ModifyProfile(字符串n_家庭电话)
{
尝试
{
//获取登录响应
LoginResp LoginResp=LoginToBetfair(“用户名”、“密码”);
//制作一个BFGS实例
BFGlobal=新的BFGlobalService();
//在[req]中设置请求
ModifyProfileReq=new ModifyProfileReq();
req.header=新的APIRestHeader();
req.header.sessionToken=loginRep.header.sessionToken;
req.homephone=n_homephone;
//在[resp]中设置响应
//这里是我被抛出异常的地方。。
ModifyProfileResp resp=BFGlobal.modifyProfile(req);//您看到远程web服务出现异常
通过SOAP调用XML Web服务方法时引发的异常,并且在处理SOAP标头期间发生异常
您可能没有按照远程服务的要求设置标头。请尝试从远程获取帮助
请尝试查看以了解更多详细信息。首先
不要这样做:
catch (Exception)
{
throw;
}
这是毫无意义的。如果你没有捕获,异常将自动被抛出一个级别,这就是你使用抛出所做的。此外,如果你不能对异常执行某些操作(如重试请求),你可能最好让异常冒泡
第二,试着这样做:
catch (SoapHeaderException ex)
{
Debug.WriteLine(ex.Message);
}
这将捕获您正在处理的特定异常。此外,请在Debug语句的此处设置断点。然后,您可以浏览异常的详细信息。您将能够看到stacktrace、内部异常以及SoapHeaderException的抛出者可能希望您看到的任何其他数据
当您调试时,这些信息通常很有用,例如,它可能会说“您忘记初始化磁通电容器了。”引发了什么异常?你能发布消息/堆栈跟踪吗?你得到了什么异常?你应该发布异常,这样任何阅读你问题的人都可以知道失败的原因。内部错误,SoapHeaderException没有处理。@PHP_家伙,听起来你应该把它交给其他人。这太傻了。甚至连@PHP_家伙都没有我们忘了初始化磁通电容器。磁通电容器来自电影《回到未来》…我真的希望你不是1岁,不是美国人,不是2.20岁或更年轻。(@bzlm说不初始化磁通电容器是愚蠢的…)我看到了你的名字,我想你可能不知道C#中的异常情况(老实说,我见过很多C#开发者,他们对异常知之甚少。)
catch (SoapHeaderException ex)
{
Debug.WriteLine(ex.Message);
}