Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我们是否可以使用WCF连接服务的基于环境的端点?_C#_Wcf_App Config_Service Reference - Fatal编程技术网

C# 我们是否可以使用WCF连接服务的基于环境的端点?

C# 我们是否可以使用WCF连接服务的基于环境的端点?,c#,wcf,app-config,service-reference,C#,Wcf,App Config,Service Reference,我最近将我们的一个程序集(引用库)从旧的CSProj格式迁移到新的CSProj格式(Microsoft.Net.Sdk格式)。由于globbing规则以及它如何很好地处理依赖项(引用、项目引用、包引用),这一点非常有用 过渡后,不再有“服务引用”选项,而是“连接的服务”。我删除了旧的服务引用文件(代码、wsdl、xsd等),并创建了一个新的连接服务 它看起来更干净,因为它生成了一个json配置(用于自动生成代码)和一个Reference.cs文件。自动生成的代码与生成的旧服务参考代码略有不同。首

我最近将我们的一个程序集(引用库)从旧的CSProj格式迁移到新的CSProj格式(Microsoft.Net.Sdk格式)。由于globbing规则以及它如何很好地处理依赖项(引用、项目引用、包引用),这一点非常有用

过渡后,不再有“服务引用”选项,而是“连接的服务”。我删除了旧的服务引用文件(代码、wsdl、xsd等),并创建了一个新的连接服务

它看起来更干净,因为它生成了一个json配置(用于自动生成代码)和一个Reference.cs文件。自动生成的代码与生成的旧服务参考代码略有不同。首先,所有的方法都是异步的(有意义的),所以我调整了我们的代码来说明这一点

我遇到的问题是,我们最初依赖于应用程序的Web.Config文件(还有Web.Dev.Config、Web.Test.Config等)——在部署过程中,我们使用适当的环境配置重命名/替换Web.Config。这工作得很好,我们的应用程序添加了对库的引用,并且应用程序保存了配置信息

使用新的Connected Services自动生成的代码,在localhost地址中作为端点进行硬编码,因为我使用该地址自动生成代码

基本上,旧的“服务引用”生成的代码让客户端的默认构造函数从应用程序配置中提取端点。新连接的服务提供重载,但默认情况下不会从配置中提取端点

<system.serviceModel>
  <client>
    <endpoint address="http://xdev/xservice.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IXService" contract="XService.IXService" name="BasicHttpBinding_IXService" />
  </client>
</system.serviceModel>

使用新的WCF连接服务自动生成的代码利用我的应用程序配置,我有什么不同之处?

请参阅答案

我要做的是将端点URL存储在


我并不完全满意开发端点被编译到源代码中,并且仍然是一种退路。如果由于某种原因,一个被选中了,那么您就有一个很难发现的错误。如果有人对此有解决方案,我会非常感兴趣。

你找到解决方案了吗?我也有同样的问题。。