Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试自定义SharePoint Web服务中的错误_Sharepoint_Debugging_Sharepoint 2007_Web Services_Moss - Fatal编程技术网

调试自定义SharePoint Web服务中的错误

调试自定义SharePoint Web服务中的错误,sharepoint,debugging,sharepoint-2007,web-services,moss,Sharepoint,Debugging,Sharepoint 2007,Web Services,Moss,我创建了一个自定义SharePoint web服务,该服务已部署到测试环境中,并在该环境中成功测试。不幸的是,web服务已经停止工作,我正在尝试确定错误是什么 web服务现在在SOAP响应中返回以下错误: SOAP:server Server was unable to process request. Object reference not set to an instance of an object. 部署的web服务没有任何更改,因此我假设最近的部署更改了SharePoint配置。

我创建了一个自定义SharePoint web服务,该服务已部署到测试环境中,并在该环境中成功测试。不幸的是,web服务已经停止工作,我正在尝试确定错误是什么

web服务现在在SOAP响应中返回以下错误:

SOAP:server
Server was unable to process request.  Object reference not set to an instance of an object.
部署的web服务没有任何更改,因此我假设最近的部署更改了SharePoint配置。我的web服务.asmx被部署到_vti_bin文件夹,程序集被部署到GAC。我可以在浏览到时看到显示的WSDL文件。程序集中的web方法使用日志记录(到Windows事件日志),但是当我尝试访问web服务时,没有发生日志记录,这表明调用没有进入web方法

鉴于上述情况,有人能就调试此问题提供任何建议吗

谢谢。马吉坎迪

更新

我现在意识到,当我从端点使用web服务时,它会工作,但当我使用端点时,web服务会失败,如上所述。当我诊断问题的原因时,我将进一步更新。

这是一个获取有关异常的更多信息的尝试。它将为您提供更多信息,帮助您调试问题

try { 
// Do soap call here

} 
catch (System.Web.Protocols.SoapException soap_ex) 
{ 
  Console.WriteLine(soap_ex.Detail.OuterXML); 
} 
catch(System.Exception ex) 
{ 
  Console.WriteLine(ex.Message);         
}

这是一个获取更多异常信息的尝试。它将为您提供更多信息,帮助您调试问题

try { 
// Do soap call here

} 
catch (System.Web.Protocols.SoapException soap_ex) 
{ 
  Console.WriteLine(soap_ex.Detail.OuterXML); 
} 
catch(System.Exception ex) 
{ 
  Console.WriteLine(ex.Message);         
}

最简单的选项是附加一个调试器集以在异常时中断。如果您的基础结构规则不允许这样做,您可能需要在服务器上的代码中添加一些额外的日志记录。如果幸运的话,soap消息中可能有足够的可用信息,但根据我的经验,空引用异常通常需要更多信息才能轻松找到。

最简单的选项是附加一个调试器集,以在异常时中断。如果您的基础结构规则不允许这样做,您可能需要在服务器上的代码中添加一些额外的日志记录。如果幸运的话,soap消息中可能有足够的可用信息,但根据我的经验,空引用异常通常需要更多信息才能轻松找到。

Chris,谢谢。这不应该是System.Web.Services.Protocols.SoapException吗?它将只显示返回给客户端的错误,而Web服务的内部状态信息有限。这将显示详细的错误。我还要加上一个转折点,这会让你非常清楚发生了什么。我们帮你了吗?我们可以结束这个问题吗?克里斯,刚刚查看了你的个人资料。一条建议——不要对你的答案被接受感到急躁。在这种情况下,这只会让你损失一些声誉。没人喜欢农民代表。克里斯,谢谢。这不应该是System.Web.Services.Protocols.SoapException吗?它将只显示返回给客户端的错误,而Web服务的内部状态信息有限。这将显示详细的错误。我还要加上一个转折点,这会让你非常清楚发生了什么。我们帮你了吗?我们可以结束这个问题吗?克里斯,刚刚查看了你的个人资料。一条建议——不要对你的答案被接受感到急躁。在这种情况下,这只会让你损失一些声誉。没有人喜欢Rep Farmer.Tom,因为这是一个测试环境,安装VisualStudio来调试这个问题不是一个选项。另外,如上所述,我已经登录了web服务代码,根本没有调用它。问题不在web服务代码中,而是在与端点的连接中。Tom,由于这是一个测试环境,安装Visual Studio来调试问题不是一个选项。另外,如上所述,我已经登录了web服务代码,根本没有调用它。问题不在web服务代码中,而是在与端点的连接中。