BizTalk 发布服务接口后访问该服务出现错误“Internal SOAP process failed”
今天一个朋友在做BizTalk项目时遇到了这个错误,具体问题是这样的。
错误描述
- 他通过BizTalk设计了一段业务流程并发布成了一个Web Services接口,并将其部属到了IIS 7上。
- 建立了一个Win Form的应用程序,在该程序中引用了这个Web Services接口。
- 在程序执行过程中,触发了一个事件去调用该Web service之后返回错误:Internal SOAP process failed(SOAP内部处理失败)。
解决方法
- 打开事件查看器,查看具体错误原因,因没有看到朋友机器上的错误日志,初步诊断为因没有登录BizTalkMgmtDb的权限而导致消息引擎无法注册端口SOAP的适配器。
- 导致这个错误的原因是因为在IIS中web services所对应的应用程序池的账户不是BizTalk Isolated Host Users的组成员,而BizTalk Isolated Host Users具有对BizTalkMgmtDb管理数据库的访问权限。
- 找到IIS中web services所对应的应用程序池(例如DefaultAppPool),将该程序池所对应账户加入到BizTalk Isolated Host Users组和IIS_WPG组当中。
- 这时候应该已经解决问题了,如果还是不行,则将DefaultAppPool对应的帐户改为“IWAM_机器名”,同时也把“IWAM_机器名”加入到BizTalk Isolated Host Users组和在IIS_WPG组,然后重新启动IIS,再进行调试。