gpt4 book ai didi

c# - 我正在尝试使用 C# 中的 PHP SOAP 服务并在 VS 2010 中创建类包装器

转载 作者:太空宇宙 更新时间:2023-11-03 16:38:26 25 4
gpt4 key购买 nike

我的任务是为 SOAP 服务创建类包装器,想法是您可以将其视为常规类。这样做的主要原因是 SOAP 服务的 WDSL 只包含一个方法,它有 5 个参数,而且它只是一种 OO,所以你必须非常了解所有的方法调用,但要记住它们有点困难.

好的,所以我已经尝试添加 Web 引用,现在可以在 VS 2010 中将 Web 引用添加为服务引用。您单击添加服务引用高级等,它会放入服务引用。伟大的。不幸的是,如果我尝试从我无法访问的类访问它。

我可以构建一个控制台应用程序并将代码放在主过程中,并可以正常访问 SOAP 服务的方法,但是当我添加对类库的引用时,智能感知不允许我选择任何内容。我会像这样实例化一个实例:

SOAPService.webServiceService ws = new SOAPService.webserviceService();

ws.

然后 intellisense 拒绝启动。如果我在 Web 项目或控制台应用程序中执行相同的操作,那么我可以正常访问它。我已经添加了命名空间我已经做了各种各样的事情。此外,每当我创建 Web 项目时,我都可以添加 Web 引用并获取 DISCO 文件。

好吧,在讨论这个主题时,我还需要将凭据传递给 PHP 中的 Web 服务。

问题是,过去我会创建一些 .net 系统凭据并添加这些凭据,如果我连接到另一个 .net 服务,它通常会通过。

我应该如何将它们发送到 PHP 网络服务?我总是收到无效的用户名/密码组合错误或信封格式错误的错误类型

谢谢B先生

最佳答案

所以 intellisense 不起作用,但是如果您添加该方法并尝试使用它,它会起作用还是会产生错误?

关于诊断身份验证问题,请尝试使用 fiddler 查看正在发送的 SOAP 消息,并查看回复。您是否有其他一些软件可以连接到该服务并对其进行身份验证?使用 fiddler 查看 SOAP 消息并比较它们以查看 header 是否不同等。

我通常会这样做,

using (Service service = new Service())
{
service.ClientCredentials.Windows.ClientCredential.Domain = "domain";
service.ClientCredentials.Windows.ClientCredential.Password = "password";
service.ClientCredentials.Windows.ClientCredential.UserName = "username";
}

此外,如果您有任何问题,一般使用 fiddler 关于服务是否正常工作,您可以查看 SOAP 消息,它通常会为您提供更清晰的消息。

我知道在 IIS 中您可以打开失败的请求处理,这也可以让您了解服务器端正在发生的事情,也许您的 php 服务也有某种形式的日志记录?

关于c# - 我正在尝试使用 C# 中的 PHP SOAP 服务并在 VS 2010 中创建类包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com