调试自定义SharePoint Web服务中的错误
我创建了一个自定义SharePoint web服务,该服务已部署到测试环境中,并在该环境中成功测试。不幸的是,web服务已经停止工作,我正在尝试确定错误是什么 web服务现在在SOAP响应中返回以下错误:调试自定义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配置。
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服务代码中,而是在与端点的连接中。