【问题标题】:Debug an Error in a Custom SharePoint Web Service调试自定义 SharePoint Web 服务中的错误
【发布时间】:2010-02-18 17:20:20
【问题描述】:

我创建了一个自定义 SharePoint 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。当我浏览到http://servername:port/_vti_bin/MyCustomWebService.asmx 时,我可以看到正在显示的 WSDL 文件。程序集中的 Web 方法使用日志记录(到 Windows 事件日志),但是当我尝试访问 Web 服务时没有发生日志记录,这表明调用没有进入 Web 方法。

鉴于上述情况,任何人都可以提供任何有关调试此问题的建议吗?

谢谢。 MagicAndi。

更新
我现在意识到,当我从端点 http://servername:port/Site/_vti_bin/MyCustomWebService.asmx 使用 Web 服务时,它可以工作,但是当我使用端点 http://servername:port/_vti_bin/MyCustomWebService.asmx 时,Web 服务会如上所述失败。当我诊断出问题的原因时,我会进一步更新。

【问题讨论】:

    标签: sharepoint debugging sharepoint-2007 web-services moss


    【解决方案1】:

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

    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);         
    }
    

    【讨论】:

    • 克里斯,谢谢。那不应该是 System.Web.Services.Protocols.SoapException 吗?
    • 这只会显示返回给客户端的错误,而关于 Web 服务的内部状态的信息有限。
    • 这将显示一个详细的错误。我还会在其中添加一个断点,这应该可以让您非常清楚地知道发生了什么。
    • 我们帮助过您吗?我们可以关闭这个问题吗?
    • 克里斯,刚刚查看了您的个人资料。一条建议——不要因为你的答案被接受而咄咄逼人。在这种情况下,它只会让你失去一些 SO 声誉。没有人喜欢 Rep Farmer。
    【解决方案2】:

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

    【讨论】:

    • Tom,因为这是一个测试环境,所以不能安装 Visual Studio 来调试问题。另外,如上所述,我已经登录了 Web 服务代码,并且根本没有调用它。问题不在于 Web 服务代码,位在于与端点的连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多