Web services 从SharePoint工作流调用asmx Web服务:找不到资源

Web services 从SharePoint工作流调用asmx Web服务:找不到资源,web-services,sharepoint,workflow,asmx,Web Services,Sharepoint,Workflow,Asmx,本周,我们推出了新的SharePoint解决方案。在登台环境上进行了近一年的开发和测试之后,这是我第一次遇到以下错误 错误:有时它能工作,有时它会在404上崩溃 我们在SharePoint解决方案中使用了Nintex工作流,但我想Nintex在这里不是交易破坏者。通过此工作流(以及其他工作流),我们将调用一个自定义asmx Web服务,该服务托管在SharePoint场的“vti”bin中。webservice中的所有内容都以提升的权限运行。当工作流调用webservice时,webservic

本周,我们推出了新的SharePoint解决方案。在登台环境上进行了近一年的开发和测试之后,这是我第一次遇到以下错误

错误:有时它能工作,有时它会在404上崩溃

我们在SharePoint解决方案中使用了Nintex工作流,但我想Nintex在这里不是交易破坏者。通过此工作流(以及其他工作流),我们将调用一个自定义asmx Web服务,该服务托管在SharePoint场的“vti”bin中。webservice中的所有内容都以提升的权限运行。当工作流调用webservice时,webservice会为某些用户随机返回404错误:找不到资源。这里缺少的资源是指向Web服务的asmx路径

有趣的是,只有当我们客户的一个用户启动工作流时,才会发生此错误,但如果我们的一个测试登录名是工作流启动器,则不会发生此错误。对于客户的用户,该错误也仅发生在5次测试运行中的2次。当使用我的测试登录进行测试运行时,我有时也会遇到这样的错误,但在20次尝试中只有3次。错误发生在来自工作流的另一个webservice调用中,而不是在客户的用户尝试时崩溃的同一个调用

环境

SharePoint环境由两个web前端和一个应用程序服务器组成。负载平衡器也在运行。因此,我猜测环境中的一台机器没有正确配置。当我与我们的测试用户一起测试时,我在与服务器场服务器位于同一网络的工作站上进行测试——我直接通过远程桌面连接进行测试,而且我的测试必须通过负载平衡器。客户的用户在类似的情况下测试工作流,但我相信他们被路由到SharePoint场的方式不同,因此他们可以像我在测试remote时那样进入另一个前端

我已经尝试过的

  • 直接使用我的测试用户测试Web服务,而无需工作流
  • 直接测试Web服务,而无需在每个前端执行工作流
  • 检查asmx文件是否确实位于所有计算机上的所有vti bin文件夹中
结论:asmx无处不在,在手动调用Web服务时,我从未体验过ASP.NET特定的404

我的怀疑

它有时是有效的,所以我想可能有一个前端在做它的工作。当工作流在另一个(有故障的)前端上运行时,问题就会出现——这就解释了为什么我的测试用户启动的工作流与客户启动的工作流表现不同

或者可能是许可问题?我已经测试过从_vti_bin手动调用Web服务,测试用户对SharePoint场完全没有权限,并且能够成功调用Web服务。或者我应该尝试使用系统帐户启动工作流

我有什么办法可以缩小这个问题的范围吗?登台系统仍然运行良好-相同的版本,相同的用户,没有问题

提前感谢,节日快乐


干杯

问题隔离:当您在没有工作流的情况下测试asmx时,您使用的是测试用户帐户还是客户用户帐户?这里的关键是将问题隔离到 1.网络服务 2.WFE正在尝试为请求提供服务 3.调用web服务(即工作流)的客户端应用程序

权限:尝试使测试用户的权限与客户用户的权限相匹配,以便进行比较

是否存在跨域连接? 是否有防火墙或防病毒软件监控流量

日志:检查IIS日志文件和事件查看器以查看有关404错误的更多详细信息



Qubit

为什么不打开Fiddler并检查它如何、何时、何地调用webservice呢

我想它会给你一个完整的画面


如果fiddler不起作用,也可以发布它的日志

解决了今天的问题


这是一个配置问题:我客户的It向服务器场添加了另一个应用程序服务器,并且忘记在IIS控制台中配置绑定。每次工作流在新的应用程序服务器上运行时,由于缺少绑定,它都无法连接到Web服务。

Web服务是从一个SharePoint前端调用的,而不是从用户的浏览器调用的。测试用户的权限甚至比客户的用户更受限制。客户的用户在登台环境中是相同的,并且在那里工作得很好。我们测试的客户的一个用户甚至是网站集管理员。广告的每个经过身份验证的用户都对网站集具有读取权限(NT授权/经过身份验证的用户)。我还与测试用户在两个前端进行了测试-在前端进行测试时,lmhosts文件将SharePoint url重定向到本地主机,而不是负载平衡器。。。