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

标签 c# php visual-studio web-services soap

我的任务是为 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/

相关文章:

c# - 当字符串为空时将 NULL 插入 SQL

c# - DateTime.TryParseExact 为本地化日期返回 false

c# - 如何避免主体从工作线程传播到 GUI 线程

php - 如果在插入期间不在表中,Laravel Eloquent 忽略属性

c# - 使用自定义管道将平面文件拆分为较小的文件(按行数)

PHP如何将eval(0分配给变量

php - Laravel 数据迁移

c# - 使用 HttpWebRequest 传输到 ftp 站点

c# - Git和TFS版本控制团队合作

visual-studio - 从 WebMatrix 2 启动 Visual Studio 打开错误版本