【问题标题】:Client calls .asmx, Server exposes WCF endpoint客户端调用 .asmx,服务器公开 WCF 端点
【发布时间】:2009-12-04 21:17:27
【问题描述】:

我们有一个配置为连接到 asmx 服务的客户端。我们不想要求我们的客户更新他们的配置,但我们想升级我们的服务以使用 WCF。有谁知道 WCF 是否支持这个?如果是这样,配置文件会是什么样子?

我们的 asmx 服务如下所示:

<bindings>
<binding name="ATransactionSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://.../atransaction.asmx" binding="basicHttpBinding" bindingConfiguration="ATransactionSoap" contract="ATransactionSoap" name="ATransactionSoap" />

【问题讨论】:

  • 要格式化,只需选择代码并按 Control-K。

标签: wcf asmx


【解决方案1】:

回答您的后续问题:

有什么方法可以在不更改服务 URL 的情况下使用 WCF?

是的,您可以将旧的 .asmx 网址重定向到您的 .svc 网址。它需要在服务端更改配置以及更改您的 .asmx 文件。但是您现有的客户端可以继续以任何方式保持不变的连接。见http://kaushikrabadiya.blogspot.com/2008/11/how-to-use-asmx-extension-to-handle-wcf.html

【讨论】:

    【解决方案2】:

    您的客户无需更改,只需更改服务的 URL。

    【讨论】:

    • 有什么方法可以在不更改服务 URL 的情况下使用 WCF?这就是我真正想问的问题。
    • 如果您甚至无法更改 URL,那么您的设计非常糟糕,您应该先修复它。如果您决定将服务移动到不同的 Web 服务器怎么办???
    • 我同意你的观点,但并不是我们不能,而是我们不想。更改 URL 将是一项昂贵的操作,并且意味着联系我们的客户、处理错误更新的 URL 等等......
    • 同样,如果更改配置文件中的 URL 是一个主要问题,那么您真的应该解决这个问题。也就是说,如果您自己托管 WCF 服务,那么我认为文件扩展名并不重要。如果您愿意,我认为您可以在 host/service.asmx 托管 WCF 服务。
    • -1:必须在几个分散的配置文件(或我们无法控制的外部客户端的配置文件)中更改 URL 是一个常见问题,在现有解决方案中修复它并非易事。 (但是当 URL 必须保持不变时,接受的答案提供了一个很好的解决方案)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    相关资源
    最近更新 更多