WCF:如何将多个服务组合到单个 WSDL 中

2024-03-11

在我的 ASP.NET WebForms 项目中,我引用了 WCF 服务库项目,其中包含针对每个业务对象的不同 WCF 服务。这些服务托管在 IIS 中,并且可以通过我在 Global.asax 中定义的路由获取 WSDL:每个服务通过一个路由获得一个 WSDL。

我真正需要的是 - 选择我想要为不同客户提供的服务并为所选服务集生成单个 WSDL 的能力。


是的,可以配置 WCF 路由服务并从其背后的单个服务获取 WSDL 文件。

Step 1 - Set HttpGetEnabled set to true并在路由器服务后面的所有 WCF 服务中配置 MEX 端点

 <service behaviorConfiguration="routingBehv" name="System.ServiceModel.Routing.RoutingService">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/WcfRoutingService/RoutingService.svc"/>
      </baseAddresses>
    </host>       
    <endpoint address="http://localhost/WcfRoutingService/RoutingService.svc" binding="mexHttpBinding" name="mexEndpoint" contract="System.ServiceModel.Routing.IRequestReplyRouter"/>
  </service>

Step 2-配置路由服务

添加端点

<endpoint address="" binding="mexHttpBinding" name="mexEndpoint" contract="System.ServiceModel.Routing.IRequestReplyRouter"/>

添加服务行为

 <behaviors>
      <serviceBehaviors>
        <behavior>
          <routing routeOnHeadersOnly="false" filterTableName="routingTable" />
          <serviceDebug includeExceptionDetailInFaults="true" />
          <serviceMetadata httpGetEnabled="false" />
        </behavior>

      </serviceBehaviors>
    </behaviors>

客户端端点地址应指定“MEX”端点地址

 <client>
  <endpoint address="http://localhost/PremiumWcfService/PremiumWCFService.svc/mex" binding="mexHttpBinding" contract="*" name="PremiumServiceMex"/>
  <endpoint address="http://localhost/StandardWCFService/StandardWCFService.svc/mex" binding="mexHttpBinding" contract="*" name="StandardServiceMex"/>  
</client>

指定路由表

<routing>
  <filters>
    <filter name="StandardServiceMexFilter" filterType="EndpointAddress" filterData="http://tempuri.org/WcfRoutingService/RoutingService.svc/StandardService" />
    <filter name="PremiumServiceMexFilter" filterType="EndpointAddress" filterData="http://tempuri.org/WcfRoutingService/RoutingService.svc/sPreminuService" />
  </filters>
  <filterTables>
    <filterTable name="routingTable">
      <add filterName="StandardServiceMexFilter" endpointName="StandardServiceMex"/>
      <add filterName="PremiumServiceMexFilter" endpointName="PremiumServiceMex"/>       
    </filterTable>
  </filterTables>
</routing>

你们都完成了。 您可以通过以下 URL 直接访问您的服务的 WSDL 文件:

http://localhost/WcfRoutingService/RoutingService.svc/StandardService
http://localhost/WcfRoutingService/RoutingService.svc/PremiumService
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WCF:如何将多个服务组合到单个 WSDL 中 的相关文章

  • 如何在没有 ASP.NET 的情况下从 json 客户端调用 .NET AuthenticationService

    我有一个 WCF 4 服务 位于安全子文件夹中 在客户端使用 NET AuthenticationService 使用表单身份验证进行身份验证后可以访问该服务 此 WCF 服务适用于通过 json 进行通信的移动应用程序客户端 但不是 AS
  • 如何使用 Visual Studio (vsdiffmerge) 作为 SourceTree for Mercurial 中的外部 diff 工具?

    我使用 Mercurial 作为源代码管理 并使用 SourceTree 来管理它 我想使用 Visual Studio 的内置差异和合并工具 vsdiffmerge 来比较文件 但这不起作用 我目前正在使用以下内容 差异命令 C Prog
  • 检查Cookie是否存在

    从快速搜索开始堆栈溢出我看到有人建议使用以下方法来检查 cookie 是否存在 HttpContext Current Response Cookies cookie name null 或 在一个Page class this Respo
  • ASP.NET 项目在移动到另一台计算机时抛出 HTTP 错误 500.19

    我将一个 3 层 ASP NET 项目从运行 Visual Studio 2010 的系统复制到也运行 Visual Studio 2010 的系统 当我右键单击并选择浏览器中位于 UI 层下的文件夹内的文件上的视图时 我得到错误 HTTP
  • 如何在登录名控件中显示用户名

    我有一个母版页 其中包含基于母版页的所有后续页面上显示的登录视图内容 我有一个用户名控件也嵌套在登录视图中 用于在用户登录时显示用户名 母版页中登录视图的代码显示如下 div class loginView div
  • 是否可以使用 Visual Studio 调试器的监视窗口来监视内存位置的值?

    是的 我知道有四个内存窗口 但我更喜欢在监视窗口中显示单个值 并且我想知道是否可以指定要在监视窗口中监视的内存位置 单独放置地址只会计算出十六进制地址 如果您想监视特定的内存位置 那么您需要告诉调试器该位置中的对象的类型 而不仅仅是0x00
  • 使用 C# 发送要在服务器上执行的代码 - 类似于 Java RMI

    这是java中的示例代码 共享接口 import java rmi Remote import java rmi RemoteException public interface Compute extends Remote public
  • 在docker中使用MySQL数据库设置aspnetcore

    我正在尝试设置一个 docker compose 文件 其中包含 asp net core mysql 数据库和 phpmyadmin 的容器 设置我的 mysql 服务器没有问题 我可以使用 phpmyadmin 访问它 我的 asp n
  • 路径访问被拒绝 VS 2017 无法复制文件

    最近 Visual Studio 遇到了最奇怪的问题 我正在运行 2017 年 我有一个与同事合作了一段时间的存储库 有一天我突然尝试构建 但遇到了一些错误 内容如下 访问路径 function json 被拒绝 然后 在多次尝试构建和清理
  • 如何为客户端和服务器缓存设置不同的缓存过期时间

    我想让某些页面为客户端提供 10 分钟缓存 为服务器提供 24 小时缓存 原因是如果页面发生变化 客户端将在 10 分钟内获取更新版本 但如果没有任何变化 服务器只需每天重建一次页面 问题在于输出缓存设置似乎覆盖了客户端设置 这是我的设置
  • 如何在 asp.net 网站中使用 aspnetdb 数据库

    我使用 asp net 3 5 创建了一个网站 现在我使用 Membership API 和 aspnetdb 数据库为其添加了会员支持 我已经在本地机器上完成了所有测试 现在 在将该站点上传到服务器时 需要考虑与 aspnetdb 有关的
  • 如何在 Asp.Net 页面上的一处处理所有错误/消息?

    我在这里寻找一些指导 在我的网站上 我将内容放入 Web 用户控件中 例如 我将有一个新闻项控件 一个文章控件 一个联系表单控件 这些将出现在我网站上的各个位置 我正在寻找一种方法 让这些控件将消息传递到它们所在的页面 我不想将它们紧密结合
  • 运行 t4 脚本作为 resx 文件的自定义工具

    我有一个资源文件MyResource resx 我想改变MyResource Designer cs文件生成 我有一个 t4 脚本 它接受 resx 文件作为输入并给出结果转换 但是 我必须手动运行此 t4 才能使其工作 我看到 resx
  • 从表单身份验证中排除页面 - ASP.NET

    我知道有两种方法可以从表单验证中排除页面 通过使用包含需要排除的页面的文件夹中的另一个 web config 文件 或者使用 location 元素
  • 古老的“字幕”标签的替代品?

    marquee 标签的标准等效项是什么 我正在寻找 HTML C asp NET 或 ASPX jquery java 脚本的解决方案 marquee 标签未包含在标准中 因为它是 视觉 标签 而不是 语义 标签 因此 您想要的任何语言都没
  • 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

    我只是想了解为什么我不能在 Web 服务中使用静态 Web 方法 为什么会受到限制 有人可以给我对此进行简洁的解释吗 答案是 因为你不能 它不是这样设计的 其设计是 将创建 Web 服务类的实例 然后调用实例方法 我只能猜测微软为什么这样设
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • 使用实体框架重叠约会

    我将 asp net mvc 与实体框架一起使用 我有一个包含 startat 字段 endat 字段和 roomid 字段 称为 SpaceConfigurationId 的约会列表 并且希望查找给定房间已重复预订的约会列表 可以假设 e
  • 不支持 EF6 上下文类型“System.Data.Entity.Core.Objects.ObjectContext”

    我有一个使用 Visual Studio 2013 和 ADO NET 实体数据模型 EF6 创建的新项目 现在我必须使用一些动态数据函数 例如访问 MetaTable 对象 所以我添加以下代码 MetaModel model new Me
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同

随机推荐

  • 反转 ResourceManager

    如果执行 ResourceManager GetString Key 则可以获得资源中项目的值 有没有办法进行反向查找以从给定值的资源中获取密钥 本质上是反翻译 您应该能够获取 ResourceSet 并迭代它的值 如果它们相等则返回键 请
  • CUDA 标量和 SIMD 视频指令的效率

    SIMD指令的吞吐量低于32位整数运算 如果是 SM2 0 仅标量指令版本 则低 2 倍 如果是 SM3 0 则低 6 倍 什么情况下适合使用它们 如果您的数据已经以 SIMD 视频指令本机处理的格式打包 则需要多个步骤对其进行解包 以便可
  • 如何让树视图重新考虑是否需要水平滚动条?

    考虑以下非常简单的单元 Unit1 pas unit Unit1 interface uses Windows Classes Controls Forms ComCtrls type TForm1 class TForm TreeView
  • 使用内部/外部传播包

    我想在我的模拟中放置一个 系统 组件 类似于Modelica Fluid System and Modelica Mechanics MultiBody World 所有其他组件都可以从中访问Medium包 以便在整个流程图中仅设置一次工作
  • matplotlib 交互式绘图(在图表上手动绘制线条)

    我已经使用 matplotlib 成功绘制了一组日期排序数据 X 轴是日期 但是 我希望能够manually在绘制的图表上从一个 date1 y1 到另一个 date2 y2 绘制线条 我似乎找不到任何例子来说明如何做到这一点 或者实际上是
  • 如何为 Ionic 4(android / ios)应用程序创建 google pay?

    我使用以下方法创建了 google pay for web URL Google 网络付费 https developers google com pay api web guides tutorial 我想为 ionic 4 应用程序创建
  • 转换为 UCS2

    Vb net 或C 中是否有任何函数可以对UCS2中的字符串进行编码 Thanks 使用以下函数以 UCS2 格式对 unicode 字符串进行编码 gt Used to encoding GSM message as UCS2 publi
  • Data.table:连接 ID 和日期键,但希望第一个表中的日期键之前(或等于)最接近的日期

    我真的很感谢对这个问题的一些帮助 我找不到足够接近的例子 我有两个 data tables 第一个称为customer table 包含特定于时间戳 AsOfDate 第二个表称为activity table描述发送给该客户的营销活动Act
  • MonoDevelop - 转换行结束对话框

    我经常在 Linux 上的 MonoDevelop 和具有相同代码库的 VS2010 之间切换 因此我永远不得不单击不转换行结尾 MonoDevelop 中是否有一个选项可以设置默认答案以防止弹出此对话框 找到了 编辑 gt 首选项 gt
  • 无法更改 root 帐户的密码 ansible

    我有以下错误 failed true invocation module args append privs false check implicit admin true config file root my cnf connect t
  • Unicorn Rails - 在生产模式下启动时占用 100% CPU

    我们使用 Unicorn Rails nginx 它在我的系统中的开发模式和生产模式下运行良好 4GB RAM Intel R Core TM 2 Duo CPU P8600 2 40GHz 我可以在本地系统中启动 10 个工作人员 但在生
  • 如何使用Android传感器计算旋转角度?

    我正在做一个 Opengl 应用程序 如果 Android 设备沿 Z 轴旋转 倾斜 我必须旋转相机 我尝试过SensorManager getOrientation R orientVals 使用磁性和加速度传感器 但数值波动很大 我的设
  • UpgradeableApp API 不断给出“无效的 OAuth 消费者密钥”

    给出以下 ruby 代码 consumer OAuth Consumer new consumer key consumer secret site https www googleapis com resp consumer reques
  • 在python中获取方阵的上三角形或下三角形的所有元素

    numpy scipy 中是否有一个函数可以返回方阵的一个三角形 上或下 的所有元素 e g matrix 1 2 3 4 5 6 7 8 9 三角形 上 下 up 1 2 3 5 6 9 down 1 4 5 7 8 9 or up 1
  • 如何使画布文本可选择?

    任何建议都将受到高度赞赏 文本选择有很多组成部分 有些是视觉的 有些是非视觉的 首先 使文本可选择 您必须保留一个数组 其中包含文本的位置 文本是什么以及使用的字体 您将通过 Canvas 函数measureText 使用此信息 通过使用m
  • Elasticsearch:从索引中删除重复项

    我有一个包含多个重复条目的索引 它们具有不同的 id 但其他字段具有相同的内容 例如 id 1 content content1 id 2 content content1 id 3 content content2 id 4 conten
  • 使用 Func 时如何调用 invoke

    在函数中Test Func
  • 在 Akka 中等待多个结果

    在 Akka 中等待多个 actor 结果的正确方法是什么 The 反应式编程原理 https www coursera org course reactiveCoursera 课程有一个使用复制键值存储的练习 在不详细讨论分配的细节的情况
  • Paypal Express 沙箱访问被拒绝

    我正在尝试使用 Paypal 沙箱 API 并得到此响应 Access Denied You don t have permission to access http api 3t sandbox paypal com nvp on thi
  • WCF:如何将多个服务组合到单个 WSDL 中

    在我的 ASP NET WebForms 项目中 我引用了 WCF 服务库项目 其中包含针对每个业务对象的不同 WCF 服务 这些服务托管在 IIS 中 并且可以通过我在 Global asax 中定义的路由获取 WSDL 每个服务通过一个