1
4
Silverlight应用程序根本看不到托管服务器的web.config-它位于服务器端,对客户端上运行的Silverlight应用程序不可见。Silverlight应用程序在自己的servicereferences.clientconfig文件中或在用代码创建本地服务代理时以编程方式指定的URL中查找。
因此,您有两种选择:
我们使用第二个选项是因为我们希望有一个配置端点的标准编程接口。我们会这样做(当然,如果MaxValue是面向公众的服务,则不会这样做): public ImportServiceClient CreateImportServiceClient() { return new ImportServiceClient(GetBinding(), GetServiceEndpoint("ImportService.svc")); } public ExportServiceClient CreateExportServiceClient() { return new ExportServiceClient(GetBinding(), GetServiceEndpoint("ExportService.svc")); } protected override System.ServiceModel.Channels.Binding GetBinding() { BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None); binding.MaxBufferSize = int.MaxValue; binding.MaxReceivedMessageSize = int.MaxValue; binding.SendTimeout = TimeSpan.MaxValue; binding.ReceiveTimeout = TimeSpan.MaxValue; return binding; } protected EndpointAddress GetServiceEndpoint(string serviceName) { if (Settings == null) { throw new Exception("Service settings not set"); } return new EndpointAddress(ConcatenateUri(Settings.ServiceUri,serviceName)); } protected EndpointAddress GetServiceEndpoint(string serviceName, Uri address) { if (Settings == null) { throw new Exception("Service settings not set"); } return new EndpointAddress(ConcatenateUri(address, serviceName)); } “importServiceClient”和“exportServiceClient”等类是从创建对WCF服务的服务引用中生成的代理。settings.serviceuri是我们存储要与之交谈的服务器地址的地方(在我们的示例中,它是通过托管在其中的页面中的Silverlight插件的参数动态设置的,但是您可以使用任何您喜欢的方案来管理此地址)。 但是如果您只想调整servicereferences.clientconfig,那么您不需要这样的代码。 |
2
1
我在托管Silverlight的ASP页中使用Silverlight对象的initparams来传递WCF服务URL。您可以从ASP页面的web.config获取URL。在我的情况下是可行的。 |
Ehsan Akbar · 当请求被激发时,WCF请求时间会增加 6 年前 |
Gans · 具有多操作合约的WCF Rest服务 6 年前 |
Moelgaard · NLog中的IIS应用程序名称。配置 6 年前 |
Kerwen · WCF服务调用异步函数 6 年前 |