【问题标题】:WCF all clients use web.config values regardless of settings provided by clients无论客户端提供什么设置,WCF 所有客户端都使用 web.config 值
【发布时间】:2014-09-03 08:43:27
【问题描述】:

我们有几个客户端(10 个)使用端点与我们的 WCF 服务器连接,目前他们都在使用下面给出的这段代码。

我们可以在 web.config 中指定所有设置吗?由于我们的 WCF Web 服务托管在单独的服务器上,并且只是忽略客户端为我们提供的内容,因此我希望它们不向我们提供超时和绑定等值,我查看了证书身份验证,但不是我们想要的,因为客户端将来会增加。 .

        HttpClientCredentialType credType = myCred.httpClientCredentialType;

        //Set the binding security & authentication type
        BasicHttpBinding binding = new BasicHttpBinding();
        binding.Security.Mode = BasicHttpSecurityMode.Transport;
        binding.Security.Transport.ClientCredentialType = credType;

        TimeSpan ts = new TimeSpan(0, 0, 10, 0);
        binding.CloseTimeout = ts;
        binding.OpenTimeout = ts;
        binding.ReceiveTimeout = ts;
        binding.SendTimeout = ts;

        //set the webservice endpoint address
        EndpointAddress endpoint = new EndpointAddress(someURL + "/_vti_bin/ourWCF/fruits.svc");

        ChannelFactory<WebServices.Internal.IFruits> factory = new ChannelFactory<WebServices.Internal.IFruits>(binding);
        factory.Credentials.Windows.ClientCredential = myCred;
        factory.Credentials.UserName.UserName = myCred.UserName;
        factory.Credentials.UserName.Password = myCred.Password;

        WebServices.Internal.IFruits proxy = factory.CreateChannel(endpoint);
        string someThing = proxy.GetFruitsList();

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    您只能控制自己的主机设置;你无法控制客户的行为。如果他们想将连接超时设置为 1 秒,那么作为主机管理员/程序,您对此无能为力。除非……

    如果您对潜在客户有足够的控制权,可以坚持让他们使用您的客户端 DLL/Exe 来建立和维护与您的主机的连接,那么您可以按照您想要的方式设置客户端配置。但是,如果您的 iOS、Android、Windows 等客户端都从世界各地访问您的服务,那么您就会被他们使用的任何客户端配置所困。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多