ASP.NET 5添加WCF服务参考

2023-12-19

在 Visual Studio 2015 预览版(预发行版)中,如何添加服务引用WCF服务?


目前,这是一个相当复杂的过程,因为该工具似乎不太支持生成 WCF 客户端代码或从配置文件自动映射的方式。另外,正如 dotnetstep 指出的那样,ASP.NET 团队尚未移植System.ServiceModel尚未达到 5 个(或为 WCF 客户端提供替代方案)yet)。尽管如此,我们可以使用基于代码的方法来创建客户端代理并使用svcutil https://msdn.microsoft.com/en-us/library/aa347733%28v=vs.110%29.aspx生成我们的服务参考类。

解决方案先决条件

对于此示例,我假设您在本地托管服务http://localhost:5000/MapService.svc http://localhost:5000/MapService.svc实现了一个IMapService合同。另外,我们将调用将包含服务代理的项目MapClient.

Your project.json应该看起来像:

{
    "commands": {
        "run": "run"
    },
    "frameworks": {
        "dnx451": {
            "dependencies": {
                "Microsoft.AspNet.Mvc": "6.0.0-beta2"
            },
            "frameworkAssemblies": {
                "System.ServiceModel": "4.0.0.0"
            }
        }
    }
}

生成服务引用类

首先,我们创建一个文件夹,Service References, 在里面MapClient项目。

接下来,打开VS2015 的开发人员命令提示符并导航到您的MapClient项目目录:

cd "C:\Users\youraccount\Documents\Visual Studio 2015\Projects\MapClient\src\MapClient"

确保MapService正在运行并运行以下命令:

svcutil /language:cs /out:"Service References\MapServiceReference.cs" http://localhost:5000/MapService.svc

这应该生成两个文件,output.config and MapServiceReference.cs.

创建基于代码的客户端代理

既然没有办法自动地将端点和绑定配置从配置文件映射到您的ClientBase目前在 ASP.NET 5 中,output.config对我们来说没有多大用处。您可以将其删除。

相反,让我们在代码中创建一个客户端代理:

using System.ServiceModel;

namespace TestWCFReference
{
    public class Program
    {
        public void Main(string[] args)
        {
            var endpointUrl = "http://localhost:5000/MapService.svc";
            BasicHttpBinding binding = new BasicHttpBinding(); 
            EndpointAddress endpoint = new EndpointAddress(endpointUrl);
            ChannelFactory<IMapService> channelFactory = new ChannelFactory<IMapService>(binding, endpoint);
            IMapService clientProxy = channelFactory.CreateChannel();

            var map = clientProxy.GetMap();

            channelFactory.Close();
        }
    }
}

现在您可以使用clientProxy访问任何操作合约的实例IMapService.

作为旁注,创建一个 key:value 配置文件来存储绑定和端点配置并使用Microsoft.Framework.ConfigurationModel.Configuration https://github.com/aspnet/Configuration/blob/dev/src/Microsoft.Framework.ConfigurationModel/Configuration.cs对象填充您的ChannelFactory因此您可以将服务配置保留在代码之外,但希望这个示例能够帮助您入门。

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

ASP.NET 5添加WCF服务参考 的相关文章

随机推荐

  • 批次中%~1和%1有什么区别?

    在批次中我有时会看到 1用于开关 也用于 1 有什么不同 他们似乎都为我工作 Example if 1 echo No variable specified and if 1 echo No variable specified 似乎可以互
  • 为什么我的 Bash 脚本将 添加到文件开头?

    我编写了一个脚本 使用 sed 清理 csv 文件 删除一些错误的逗号和错误的引号 不好的 意味着它们破坏了我们用来转换这些文件的内部程序 remove all commas and re insert the good commas us
  • 使用 Azure 管理 API 进行身份验证

    我们使用 Azure API 进行各种操作已经有一段时间了 例如 这是我们使用的 API 之一https learn microsoft com en us rest api servicebus namespaces createorup
  • Bootstrap 4 垂直对齐文本不会在卡片上居中

    尝试垂直对齐以下卡片中的文本中心 div class row text center h 100 div class col md 3 text center my auto div class card card block justif
  • 如何提取嵌套的 JSON 数据?

    我正在尝试从 JSON 数据中获取值 我已经成功地深入到了 JSON 数据 几乎得到了我需要的东西 在 Python 中运行此命令 autoscaling name response Reservations 0 Instances 0 T
  • skel.js 框架/HTML5UP 模板 CSS 问题

    我是 skel js 框架的新手 遇到了一些问题 我从 HTML5UP net Zerofour 主题 下载了一个模板 并且已经为我的网站修改了所有内容 但是 CSS 没有在我的网站上正确显示无侧边栏 左侧边栏 pages 我包含以下链接
  • 用于提取部分文件路径的正则表达式

    我在 Impala 中使用正则表达式函数来查找文件路径中的文件夹名称 但它似乎没有给我正确的结果 我想从这个文件路径中解析出 一 this one path to hdfs 这是我使用的正则表达式 regexp extract filepa
  • 如何在 Angular 2 Webpack 中使用 WOW.js?

    我知道我们需要 wow js 的打字文件 但我在任何地方都找不到它 有没有其他解决方案可以将此外部js加载到webpack中 执行以下步骤 安装出口装载机 https www npmjs com package exports loader
  • 如何使用自定义比较器为三元组(“tuple”)声明/使用“unordered_set”?

    如何声明 使用unordered set对于三胞胎 tuple 使用自定义比较器 我需要存储三元组float 处理为tuple 在一组中检查潜在的重复项 因为它是关于float 我想使用常规比较 不起作用 因此需要自定义比较 这个最小的代码
  • 使用 Microsoft Web API 的 ODATA 真的是 REST 架构吗?

    我研究得越多ODATA 上的 Microsoft 框架 https www asp net web api overview odata support in aspnet web api我倾向于认为它不适合企业应用 该框架期望所有数据库都
  • 从app.js中减去代码

    为了解决一些与触摸相关的问题 我在 app js 中编写了一个脚本来重新打开并增强 EventDispatcher 该脚本相当长 并且污染了通常很干净的 app js 所以我想将我的脚本放在一个单独的文件中 然后以某种方式导入到 app j
  • 禁用 CallKit 中的“添加呼叫”选项

    有没有办法禁用添加呼叫选项Callkit当收到一个VoIP call 我找不到任何 api 来禁用此功能 但 WhatsApp 禁用了此功能 您需要同时设置supportsGrouping supportsUngrouping and su
  • 张量流“op”有什么作用?

    下面我创建了一个名为 optesting 的 tf 占位符 self center words tf placeholder tf int32 shape self batch size name op testing print Extr
  • 在 PHP 中检索 MySQL 全文搜索的匹配上下文(和安全性)

    我正在我的 MySQL 表 页面 上进行全文搜索 我正在显示与 标题 纯文本 VARCHAR 255 或 内容 html TEXT 中的关键字匹配的页面列表 当在 内容 字段中找到匹配项时 我想显示找到匹配项的代码片段 我不知道该怎么做 你
  • cntk中loss和metric是如何计算的

    我是 cntk 和 python 的新手 我创建了一个基于 TrainResNet CIFAR10 py 的 python 程序来训练 4736 个 64x64x3 图像并测试 4 个类别的 2180 个图像 训练 160 个 epoch
  • 为什么 TextInput 上的 onKeyPress 在 React Native (Android) 中不起作用?

    我正在使用 React Native 并在 Android 上进行测试 我已将 onKeyPress 添加到我的 TextInput 中 但我在模拟器中单击键盘并没有触发它 是的 我使用鼠标单击按键 有谁知道如何让 onKeyPress 工
  • 无法找到传入头 UIButton 的传出行头

    我仅在 iOS7 上因自动布局问题而崩溃 iOS8 有效 问题是 UIButton 指示 0x7b7780a0 不存在 当我查看recursiveDescription of the UIView 我该如何调查此事 从哪儿开始 edit 我
  • Bootstrap 轮播仅在第一张幻灯片中显示动画

    我的引导轮播有 4 张幻灯片 所有幻灯片都有动画图表 但动画仅在第一张幻灯片中可见 如何确保其余 3 张幻灯片的图表动画也能看到 Code
  • 如何通过uploadcare中的rest api删除文件

    我正在尝试使用 jquery ajax 删除 uploadcare Rest api 中的文件 这是我当前的 jquery 代码 ajax url http api uploadcare com files photoguid val ty
  • ASP.NET 5添加WCF服务参考

    在 Visual Studio 2015 预览版 预发行版 中 如何添加服务引用WCF服务 目前 这是一个相当复杂的过程 因为该工具似乎不太支持生成 WCF 客户端代码或从配置文件自动映射的方式 另外 正如 dotnetstep 指出的那样