如何承载和连接到连接到数据库的远程 WCF 服务

本文关键字:连接 WCF 服务 数据库 何承载 | 更新日期: 2023-09-27 18:31:39

我已经编写了一个负责访问MySQL数据库的WCF服务,并最终编写了一个使用该服务的C#客户端应用程序。

但是,我希望客户端能够远程访问该服务。为此,托管/端点配置的理想方法是什么和/或我将如何从远程客户端访问服务。

我已经浏览了以下教程和其他一些教程,但仍然不太了解应用程序域、托管、远程访问概念,也不知道如何远程连接。


http://msdn.microsoft.com/en-us/library/bb332338.aspx客户端是否可以远程访问 WCF 自承载服务?

有什么好的教程、示例代码、建议或想法,还是我完全吠错了树?

提前致谢

如何承载和连接到连接到数据库的远程 WCF 服务

我看到这样做的最好方法是在 IIS 上托管服务,最好是 IIS 7 集成版。

下面是用于在 IIS 上承载 WCF 服务的链接。http://msdn.microsoft.com/en-us/library/ms733766%28v=vs.110%29.aspx

托管服务实际上相对容易,只需几分钟。

然后,可以通过向 C# 项目添加服务引用来引用托管服务,甚至可以通过点击发现(如果尚未托管)来引用托管服务。如果托管了它,请添加在 IIS 7 中定义的 URL。如果没有托管它,只需将 WCF 服务和 C# 项目放在同一个解决方案下,然后点击"发现"。

下面是用于向项目添加服务引用的链接。http://msdn.microsoft.com/en-us/library/bb628652.aspx

您需要设置 app.config 文件或 web.config 文件,具体取决于您的应用程序类型,以便您可以定义 C# 项目与服务交互的方式。我的数据请求长度、超时、缓冲区大小、流式传输或缓冲传输等是多少。

样本:

<bindings>
    <binding name="MyBindingConfiguration" closeTimeout="00:30:00"
      openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00"
      allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
      maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
      textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"
      messageEncoding="Text">
</bindings>
<client>
      <endpoint address="http://localhost:55010/MyService.svc"
        binding="basicHttpBinding" bindingConfiguration="MyBindingConfiguration"
        contract="IMyWcfInterface"/>
</client>

让我知道这是否有帮助。

对于托管,我建议使用 和 http 绑定的 IIS,其机制类似于托管 Web 应用程序。关于访问 IIS 托管的 wcf 服务,您只需向客户端应用程序添加服务引用(这将自动生成可用于访问服务的代理类)。您可以在此处找到更多详细信息