在通过SOAP消费Web服务时出现“访问被拒绝”的错误提示。

3
我创建了一个.NET 3.5 Web服务应用程序项目,它将托管在运行Windows Server 2008 R2的IIS 7.5下。我能够从同一台服务器上托管的ASP.NET应用程序以及我们网络中的其他服务器上使用该服务,没有任何问题。但是,当另一位员工尝试使用SOAP协议来调用此服务时,他们会收到以下错误消息: "XML解析器在行号0,行位置0处失败,原因是:拒绝访问。" 认证配置设置为集成Windows身份验证,并且在尝试使用服务时,使用者需要提供服务账户的凭据。是否有其他人遇到过这个问题并知道如何解决?
更新:在与我的同事和供应商的客户服务讨论如何使用我的Web服务后,他们透露了其INVOKE SOAP步骤中存在的限制。根据供应商的说法:“如果WSDL消息定义包含输入和输出消息的相同部分名称和相同数据类型,则Invoke SOAP对象无法解释包含In/Out参数的WSDL。” Web服务API包含一个具有相同名称的方法和输出参数。如果您在浏览器中查看Web服务方法,则响应具有以下结构:
<soap:Body>
    <MyServiceResponse>
        <MyServiceResponse>
            <property>...

现在的问题是...这是否是使用SOAP协议时常见的行为,还是仅限于供应商产品解析SOAP消息的方式?

我明白另一位员工是通过另一个客户端应用程序调用它的。如果是这样,您确定他在代码中正确传递了身份验证凭据吗? - mohammedn
想一想你刚才问的问题:WSDL(描述基于SOAP的服务)是否常常无法解析,还是只有一个供应商存在问题? - John Saunders
@John Saunders - 当我在.NET应用程序中使用服务时,我没有遇到这个问题。我猜想证明这一点的唯一方法是强制应用程序使用SOAP协议来使用服务。 - Michael Kniskern
当您在.NET应用程序中使用服务时,为什么认为您没有使用SOAP? - John Saunders
1个回答

0

这似乎是一个供应商特定的弱点,而不是SOAP规范问题。他们可能只实现了一半的SOAP堆栈。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接