从MS Access调用WCF服务

Sha*_*oor 5 wcf ms-access

我想创建一个创建WCF服务,该服务在MS Access Form的按钮单击时调用.

Jef*_*eff 9

您可以通过MS Access使用WCF服务,但不能通过标准WCF机制.您需要通过GET请求,POST请求或SOAP请求来使用服务.

  1. 在Access端实现此请求的一种方法是使用SOAP工具包:http: //msdn.microsoft.com/en-us/library/aa140260%28office.10%29.aspx

  2. 另一种适用于GET,POST或SOAP请求的方法是使用XMLHTTP(如果你使用SOAP路由,则需要在XML中创建自己的SOAP信封):http: //www.codemaker.co.uk/ it/tips/ado_conn.htm(搜索XMLHTTP)

在WCF方面,您有几个选择:

  1. 托管WebHttpBinding服务.这为您提供了为您的服务公开GET和POST端点的选项.请参阅http://www.windowsitpro.com/article/net-framework2/exposing-classic-http-endpoints-with-wcf-in-net-3-5.aspx.

  2. 托管公开SOAP端点的BasicHttpBinding服务(如果在Visual Studio中创建新服务,则这是默认的WCF端点).如果你选择这条路线,你可能希望将它设置为使用旧版XML序列化和WSDL兼容,如果你在访问端使用选项1(参见http://msdn.microsoft.com/en-us/library/system) .servicemodel.xmlserializerformatattribute.aspx).

另外需要注意的一点是:如果使用XmlSerializerFormatAttribute创建BasicHttpBinding WCF服务,您基本上(从数据交换的角度来看)就像编写传统的asmx服务一样.

  • 这是一个非常好的、完整的答案,在一个地方汇集了许多有趣的东西。+1 - 如果可以的话,我会给 +5。 (2认同)

Raj*_*ore 1

您不能直接通过 MS Access 使用 WCF。

如果您拥有 WCF 服务,则必须将其更改为使用 HTTP 绑定的 Web 服务。

如果您不拥有它,则必须编写自己的 Web 服务,该服务基本上是 WCF 的包装器。

然后您可以将其作为 MS Access 中的 Web 服务使用。