问题为Windows 8.1应用程序配置WCF服务引用 - 配置更改丢失到References.cs

时间:2015-08-07 11:35:53

标签: c# wcf windows-8.1

我正在尝试在Windows 8.1应用中使用WCF服务,但我无法生成references.cs文件,如下例所示:

  public partial class WeatherSoapClient : System.ServiceModel.ClientBase<MetroTestApp.WeatherService.WeatherSoap>, MetroTestApp.WeatherService.WeatherSoap {

    /// <summary>
    /// Implement this partial method to configure the service endpoint.
    /// </summary>
    /// <param name="serviceEndpoint">The endpoint to configure</param>
    /// <param name="clientCredentials">The client credentials</param>

我的Reference.cs文件(用于差异WCF服务)生成如下:

    public partial class StoreServicesClient : System.ServiceModel.ClientBase<TMAPrivateStore.PrivateStoreApp.StoreServicesRef.IStoreServices>, TMAPrivateStore.PrivateStoreApp.StoreServicesRef.IStoreServices {

    public StoreServicesClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress) {
    }

因此,如果我进行必要的配置更改(根据此博客 http://blogs.msdn.com/b/piyushjo/archive/2011/09/22/wcf-in-win8-metro-styled-apps-absolutely-supported.aspx),更新服务引用时它们会丢失。这里出了什么问题?它与我的WCF服务有关吗?

1 个答案:

答案 0 :(得分:0)

今天生成的代理代码现在与4年前撰写文章时的情况有所不同可能有很多原因,但主要的两个是:

  1. 此时服务已更改
  2. 您用于生成代码的visual studio版本与链接文章中使用的版本不同。
  3. 这些事情中的任何一个都可能导致生成的代码完全改变 - 代码生成过程虽然最终是确定性的,但仍将不可预测地响应服务本身和/或代理生成工具的变化。

    无论如何,这不应该阻止您使用服务,您只需要在生成的代码中查找GetCityWeatherByZIPAsync()服务代理操作,并使用await或类似的异步机制从内部调用它你的地铁应用。