1

我们正在开发一个条形码应用程序,以在运行 Windows Mobile 5.0 Pocket PC 的移动计算机上运行,​​它需要从我们的 Oracle 数据库中获取数据。

Apex 已设置,但如何使用 Apex 的本机身份验证创建安全的 Web 服务?如何设置“仅HTTPS”?

更新

我现在可以在浏览器中调用 ...?wsdl 链接,看起来不错。它还在项目中注册为 WebReference。

但是当我运行以下代码时:

CONTAR_USUARIOSService service = new CONTAR_USUARIOSService();
System.Net.NetworkCredential pocket = new System.Net.NetworkCredential("pocket", "000");
service.Credentials = pocket;
double resultado = service.CONTAR_USUARIOS();

我收到此错误:

System.Net.WebException was unhandled
  Message="WebException"
  StackTrace:
       at System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke(String     methodName, Object[] parameters, WebClientAsyncResult asyncResult)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       at Supernorte.Recebimento.ContarUsuariosWebReference.CONTAR_USUARIOSService.CONTAR_USUARIOS()
       at Supernorte.Recebimento.Login..ctor()
       at Supernorte.Recebimento.MainForm.mostrarLogin()
       at Supernorte.Recebimento.MainForm..ctor()
       at Supernorte.Recebimento.Program.Main()

我收到“未经授权”错误。

4

2 回答 2

1

如果您通过您的 Web 服务(我个人仍在为之苦苦挣扎)获取 Oracle 输入和输出,您也许可以通过这种方式访问​​您的信息。

添加网络参考。

添加网络参考

它将询问您的 Web 服务已上传到的 URL。我猜这可能是您在场外拥有的网站,但我使用我们的内部服务器。

cpweb2 主机

您可以看到我有一个默认网页,我在该网页中加载了我一直坚持的可用服务。1Mainframe.svc` 将成为我的“大服务”,但后来我意识到我需要做的不仅仅是一次调用,所以我创建了下一个,“Erp 服务”。

无论如何,在我选择 后ErpService.svc,我得到了这个,我将默认的 Web 引用名称更改为ErpService1。我个人发现,如果我需要编辑或修改服务,XML 配置文件就会一团糟,所以我只删除了 Service1 并添加了 Service2。

我添加了一个名为ErpClass1.cs的新类

Erp 1 级

使用我的项目的命名空间添加对我的 Web 服务的引用,然后开始编码!

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using AcpMobile5.ErpService1;

namespace AcpMobile5 {

  class ErpClass1 {

    private ErpService m_erpService;

    public ErpClass1() {
      m_erpService = new ErpService();
    }

    public void Query(string woNumber) {
      m_erpService.Query(woNumber);
    }

    public string PartNumber() {
      return m_erpService.CoilPartNo();
    }

  }

}

显然,这并不能为您解决所有问题。您用于访问 Oracle 数据库的 Web 服务仍然需要编写,这不是一项简单的任务。

但是,我希望它可以帮助您指明正确的方向。

这一切都是使用 Visual Studio 2008 for Mobile 5.0 完成的。

界面截图

于 2013-04-04T19:00:13.127 回答
0

所以,我没有按照我的意愿使用 Apex。相反,我启用了 Oracle XML DB Native Web Services

经过一些艰难的身份验证[主要是由于输入了错误的密码]:]我得到了这段代码:

MyWebService service = new MyWebService();
service.Credentials = new MyWebService("MY_ORACLE_USER", "*******");

double result = service.MY_LOGIN_FUNCTION(this.userName);
于 2013-04-06T11:27:14.373 回答