积极答复者
构架发布为web service的问题

问题
-
我是一个初学者。今天做了一个练习,发布构架作为web serivce,然后自己写了一个console 程序测试。
在console中调用发布的web service后,返回错误。查看事件查看器有如下的错误:
Check group membership failed.
Group Name: SSO Administrators
Account Name: ALECK-OFFICEPC$
Additional Data: 533
Error Code: 0xC0002A1C, The account name is not valid or does not exist.
Access denied. The client user must be a member of one of the following accounts to perform this function.
SSO Administrators: SSO Administrators
SSO Affiliate Administrators: SSO Affiliate Administrators
Application Administrators: BizTalk Server Administrators
Application Users: BizTalk Isolated Host Users
Additional Data: WORKGROUP\ALECK-OFFICEPC$ {68262016-D9C6-43A4-B593-90D7D1876337} SOAP_RL_BizTalkServerIsolatedHost_{68262016-D9C6-43A4-B593-90D7D1876337}
SSO AUDIT
Function: GetConfigInfo ({E099461F-405A-431E-869A-BD6BFC65C1B8})
Tracking ID: 5320b27d-95e7-4e7f-a771-d8d14dc45bbc
Client Computer: aleck-OfficePC (w3wp.exe:5648)
Client User: WORKGROUP\ALECK-OFFICEPC$
Application Name: {68262016-D9C6-43A4-B593-90D7D1876337}
Error Code: 0x80070005, 拒绝访问。
The Messaging Engine failed to retrieve the configuration from the database. Details:"80070005".
我的开发环境是win vista,vs 2008 ,biztalk 2009 beta.
在ii7中,发布的web service为匿名访问,已经把匿名访问的身份验证凭据指向了管理员的账号。
现在出现这个问题不知该如何解决? 请帮忙看下
答案
-
-
问题已解决。
总结一下:有两个账号需要关注一下.
1、application pool的运行账号,该账号需要能够访问biztalk的数据库。
2、web service的匿名账号,该账号需要在BizTalk Isolated Host Users 用户组下。
3、network账号需要在BizTalk Isolated Host Users 用户组下。
前面又测试了下,好像有缓存的影响,第2,3点有些混淆了。具体的我会再测试下。不过2,3都加上,一定能行。忘了说我的操作系统是vista.
另外有个问题想请教一下,我在流程内调用了一个web service用于将入口ws传入的对象写入数据库。然后返回该对象的记录号(int)。
添加ws引用后,并没有生成返回消息的xsd, 不知道是不是返回简单类型的缘故?
由于没有xsd 架构文件,无法使用map。如何将这个内部ws的返回消息转变为入口web service的返回消息?
请版主举个例子说明一下.- 已标记为答案 GaryZhang 2009年5月11日 4:46
-
关于第一个pool的帐号问题,请参考这篇文章:http://www.cnblogs.com/chnking/archive/2006/06/10/422639.html
至于你说的“如何把简单类型转变为输出需要的消息?”,你的说的“输出需要的消息”是不是一个有架构的消息?
你需要做的是新建一个输出的有架构的消息,然后把WS的返回的简单类型赋给消息中的某个element。
至于怎么从零新建一个架构消息,请参看:biztalk中使用.net class类型的消息(一) -- 相关知识介绍 ,其中的“七. Orchestration中从零开始新建一个xml类型的消息”
专注于biztalk。 chnking.cnblogs.com- 已标记为答案 GaryZhang 2009年5月11日 4:47
全部回复
-
问题已解决。
总结一下:有两个账号需要关注一下.
1、application pool的运行账号,该账号需要能够访问biztalk的数据库。
2、web service的匿名账号,该账号需要在BizTalk Isolated Host Users 用户组下。
3、network账号需要在BizTalk Isolated Host Users 用户组下。
前面又测试了下,好像有缓存的影响,第2,3点有些混淆了。具体的我会再测试下。不过2,3都加上,一定能行。忘了说我的操作系统是vista.
另外有个问题想请教一下,我在流程内调用了一个web service用于将入口ws传入的对象写入数据库。然后返回该对象的记录号(int)。
添加ws引用后,并没有生成返回消息的xsd, 不知道是不是返回简单类型的缘故?
由于没有xsd 架构文件,无法使用map。如何将这个内部ws的返回消息转变为入口web service的返回消息?
请版主举个例子说明一下.- 已标记为答案 GaryZhang 2009年5月11日 4:46
-
-
关于第一个pool的帐号问题,请参考这篇文章:http://www.cnblogs.com/chnking/archive/2006/06/10/422639.html
至于你说的“如何把简单类型转变为输出需要的消息?”,你的说的“输出需要的消息”是不是一个有架构的消息?
你需要做的是新建一个输出的有架构的消息,然后把WS的返回的简单类型赋给消息中的某个element。
至于怎么从零新建一个架构消息,请参看:biztalk中使用.net class类型的消息(一) -- 相关知识介绍 ,其中的“七. Orchestration中从零开始新建一个xml类型的消息”
专注于biztalk。 chnking.cnblogs.com- 已标记为答案 GaryZhang 2009年5月11日 4:47