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 中 的相关文章

  • 将对话框项分组到单个“组”(Visual Studio)

    我想创建一个对话框窗口来更改应用程序的设置 下面是 Adob e Reader 的屏幕截图 使用 Spy 后 我猜想 在右侧 所有控件 按钮 组合框 等 都属于 GroupBox 对于左侧TreeView控件中的每个类别 都有一个相应的Gr
  • C# 静态类型不能用作参数

    public static void SendEmail String from String To String Subject String HTML String AttachmentPath null String Attachme
  • 刷新/重新加载 ASP.net 的副作用?

    我在 Web 和 ASP Net 开发方面相对较新 所以请耐心等待 在测试我们的网页的过程中 我注意到 如果用户单击 刷新 重新加载 并在 重新发送信息 对话框提示时单击 重试 则无论用户选择之前触发的最后一个事件如何到 刷新 随后将再次被
  • 无法访问 GitLab:SSL 证书已过期

    在 Visual Studio 中 我尝试从 GitLab 上的存储库中提取一些更改 但它给了我一个错误 Git 因致命错误而失败 无法访问https gitlab git SSL证书问题 证书已过期 如何生成新证书并将其添加到 VS 中
  • ReportViewer 正在阻止其他功能,直到报告查看器加载完成

    这是 ReportViewer 控件
  • WCF流模式确实很慢

    我想知道为什么流模式下的 WCF 与缓冲模式相比确实很慢 基本上 我从服务器读取大量数据 数据库访问 然后通过 WCF 将大量数据传输到其他客户端 我通过比较两种不同的传输模式进行了一些测试和基准测试 我创建了 2 个端点 第一个正在使用t
  • ASP .net 从 page_load 函数后面的代码中获取隐藏值

    我在 javascript 代码中设置了一个隐藏字段
  • 指定的CGI应用程序遇到错误,服务器终止了进程

    我在 azure 上托管一个 asp net 5 应用程序 代码是为 beta8 编译的 该应用程序在本地环境以及当我在 azure 网站上发布代码时运行良好 我收到一个常见错误 指定的 CGI 应用程序遇到错误 服务器终止了该进程 我能够
  • 具有多个验证组的 Page_ClientValidate() - 如何同时显示多个摘要?

    ASP NET 2 0 假设我有两个验证组 valGrpOne 和 valGrpTwo 以及两个验证摘要 valSummOne 和 valSummTwo 分解部分的原因纯粹是为了美观 一个提交按钮会触发对两组的验证 现在我想触发客户端验证
  • 上下文不是 ASP.NET 用户控件的成员

    我刚刚在 ASP NET Web 应用程序项目中创建了新的用户控件 创建后 源代码如下所示 但是一旦我向其中添加一些额外的代码 第一行就会立即出现错误 上下文不是 CS SSR RAIO SSR Project 的成员 我确实有其他用户控件
  • ASMX相当于Page_Init?

    我有一些代码想要在调用 ASMX 函数的生命周期的早期执行 对于我们的 ASPX 页面 此代码位于基类的 Page Init 函数中 我们所有的 ASPX 页面都继承自该基类 ASMX 是否有相当于 ASPX 的 Page Init 函数
  • 使用 SOAP 调用 WCF 服务

    我正在尝试在不创建 WCF 客户端的情况下测试 WCF 服务 我有类似的代码 问题here https stackoverflow com a 1643025 1397017 我希望完全控制 SOAP 负载 因此我希望能够发出我自己的 We
  • 使用 UserProfileManager 获取随机用户

    我正在尝试为我正在处理的 SharePoint 2010 项目创建一个 Who is Web 部件 此 Web 部件应该从 SharePoint 配置文件中选择一个随机用户并显示他 她的姓名 部门和电话 问题是我找不到直接从用户配置文件中获
  • 如何在 asp.net 文本框中保留前导空格

    我有一个文本框 Web 控件 它会自动修剪其内容中的任何前导空格 因此当我收到文本时 它与用户最初编写的内容不同 如果他输入了前导空格 有没有办法禁用这个功能 好吧 只有一种解决方案可以覆盖默认行为 那就是编写一个 javascript 函
  • 非静态方法需要一个目标

    private PMS USERS currUser private bool validateUserName dbContext new PmsEntities var validateUser dbContext PMS USERS
  • 将调试器附加到 IIS 实例

    我在 XP 计算机上安装了 IIS 5 1 并且安装了 Visual Studio 2005 如何将调试器附加到 IIS 实例 顺便说一句 我没有在正在运行的进程中看到 IIS 进程 或者我可能不知道要查找什么 在视觉工作室中 单击菜单栏中
  • 为什么我应该在 ASP .Net MVC 应用程序中放弃使用 HTTPContext 会话状态的形式?

    我记得读过一些地方 人们不鼓励在 ASP Net Web 应用程序中使用 HTTPContext Current Session 状态 有人可以解释一下最近这一趋势背后的一些原因吗 A这有可靠的技术原因吗 谢谢 约翰 B 首先 MVC 不是
  • OpenIdConnect.nonce cookie 过多导致错误页面“错误请求 - 请求太长”

    我正在使用 OWIN OAuth 和 OpenId Connect 身份验证 Microsoft Owin Security OpenIdConnect 在 C ASP MVC Web 应用程序中 使用 Microsoft 帐户的 SSO
  • web.config 授权是否适用于 aspx 以外的文件?

    我有带有表单身份验证的 ASP NET 应用程序 它运行良好 但我有一个包含 olly txt 文件 无 aspx 文件 的目录 我希望用户不要访问该目录 或仅登录用户 我将 web config 添加到该目录
  • 请求挂在 IIS 7.5 上的会话模块上

    有时 我网站上的一些请求开始挂在 Session 模块的 RequestAcquireState 状态上 当螺旋开始时 所有请求都会超时 我们需要在受影响的服务器上重新启动 IIS 我进行了很多调查 得到的唯一结论是 当应用程序尝试访问存储

随机推荐

  • 反转 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 每个服务通过一个