如何调试调用的WebSerivce
我写的WebService在soapUI调试没有任何问题,但是在另外程序调用中,老是出现,未将对象引用到实例,, 我想从另外的程序中跳入 WebService中,却进不去,目前也发现不了问题,
public string GetXmlToDataTable(XmlDocument GetNewXml)
{
string XmlStringHead = "";
string XmlStringBase = "";
XmlDocument objDoc = new XmlDocument();
objDoc.LoadXml(GetNewXml.InnerXml);
string LayerNameHead = "T_EMPLOYEE";
string LayerNameBase = "T_EMPLOYEE/BODY/ROW/base";//指定读取的节点
//Head
XmlNode rootHead = objDoc.SelectSingleNode(LayerNameHead);
XmlNodeList childlist = rootHead.ChildNodes;
for (int i = 0; i < childlist.Count - 1; i++)
{
foreach (XmlNode xnl in childlist[i].ChildNodes)
{
XmlElement xe = (XmlElement)xnl;
XmlStringHead += xnl.Name + ":" + xnl.InnerText + "\n";
}
}
//Base
XmlNode rootBasc = objDoc.SelectSingleNode(LayerNameBase);
childlist = rootBasc.ChildNodes;
for (int i = 0; i < childlist.Count; i++)
{
foreach (XmlNode xnl in childlist[i].ChildNodes)
{
XmlStringBase += xnl.Value + ":" + xnl.InnerText + "\n";
}
}
DataSet ds = new DataSet();
var strXml = GetNewXml.InnerXml;//Xml串
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXml);
XmlNodeReader reader = new XmlNodeReader(doc);
ds.ReadXml(reader);
reader.Close();
string[] TableInfoName = new string[ds.Tables["AttributeInfo"].Rows.Count];
string[] TableInfoValue = new string[ds.Tables["AttributeInfo"].Rows.Count];
string InfoText = "";
for (int j = 0; j < ds.Tables["AttributeInfo"].Rows.Count; j++)
{
TableInfoName[j] = ds.Tables["AttributeInfo"].Rows[j]["AttrType"].ToString();
TableInfoValue[j] = ds.Tables["AttributeInfo"].Rows[j]["AttrValue"].ToString();
InfoText += TableInfoName[j].ToString() + ":" + TableInfoValue[j].ToString() + "\n";
}
return XmlStringHead + "\n" + XmlStringBase + "\n" + InfoText;
}
以上是写好的WebService,在soapUI中调试,未出现问题。
而在调用中,却报错,求助 - -,
另外,我将WebService直接返回GetNewXml.InnerXml,在调用中是能实现的,因为不能调试 查不出问题所在。再次感谢 。。 --------------------编程问答-------------------- 你可以在本机的同一个项目中进行调试。建议在webservice加入日志功能,看到底服务端发生了什么问题。另外客户端调用报错报什么错,可以根据这个进行排查的。 --------------------编程问答-------------------- 在WebService项目中增加一个单元测试项目,模拟客户端调用。 --------------------编程问答-------------------- 打开调试的万能方法是,在需要的地方写如下的语句:
System.Diagnostics.Debugger.Break();
使用条件:运行 VisualStudio 并将解决方案打开。 --------------------编程问答-------------------- WebSerivce传文件建议使用byte[]传过去,然后再转回相应格式文件,再处理,会不会是你的这个XmlDocument 没有接收完整,网速问题...等等 --------------------编程问答-------------------- --------------------编程问答-------------------- 建议在webservice加入错误日志,这样一看就知道是什么错了!
补充:.NET技术 , ASP.NET