我创建了一个 .NET 3.5 Web 服务应用程序项目,该项目将托管在 Windows Server 2008 R2 服务器上的 IIS 7.5 下。
我能够使用托管在同一服务器和整个网络中其他服务器上的 ASP.NET 应用程序中的服务,不会出现任何问题。当另一名员工尝试使用 SOAP 协议(protocol)使用该服务时,他们会收到以下错误:
XML Parser failed at linenumber 0, lineposition 0, reason is: Access is denied.
身份验证配置设置为集成 Windows 身份验证,并且使用者在尝试使用服务时需要提供服务帐户的凭据。
还有其他人遇到过这个问题吗?他们知道如何解决吗?
更新
在与我的同事和供应商的客户服务人员讨论使用我的 Web 服务的问题后,他们透露他们的 INVOKE SOAP 步骤存在限制。根据供应商的说法:
The Invoke SOAP object cannot interpret WSDL's containing In/Out parameters if the WSDL message definition contains identical part names for the input an output messages and identical data types.
Web 服务 API 包含同名的方法和输出参数。如果您在浏览器中查看 Web 服务方法,就会发现它的响应结构如下:
<soap:Body>
<MyServiceResponse>
<MyServiceResponse>
<property>...
现在的问题...这是使用 SOAP 协议(protocol)时的常见行为还是这仅限于供应商的产品如何解析 SOAP 消息?
最佳答案
这似乎是供应商特定的弱点,而不是 SOAP 规范问题。他们可能有一个尚未实现的 SOAP 堆栈。
关于asp.net - 通过 SOAP 使用 Web 服务时为 "Access is Denied",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836440/