Herhangi bir bağlayıcı veya son nokta belirtmeden hizmet oluşturduğumda (WCF'yi Visual Studio aracılığıyla kaydettiğimde App.config dosyasındaki oluşturulan değerlerden okuyorsa) tamamıyla çalışan bir WCF hizmetim var. (Değerler yapılandırmasındaki okunur çünkü)WCF: Bu App.config değerlerini nasıl yeniden programlayabilirim?
return new SmsServiceReference.SmsEngineServiceClient();
Bu ok çalışır:
Hizmetin başvuru döndüren basit bir yöntem var. Ancak, bir veritabanı (örneğin URI) içinde bu değerlerin bazılarına sahip olmak istiyorum ve böyle bir şey yapmak istiyorum: Bu işe yaramazsa Binding binding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("my.uri.com/service.svc");
return new SmsServiceReference.SmsEngineServiceClient(binding,endpointAddress);
. Hizmet referansını kullanmaya çalıştığımda bir istisna atar.
Bunun nedeni, App.config öğesinin, iki satırın sağlanmadığı (daha açık) olduğundan daha fazla bilgiye sahip olduğundan şüpheleniyorum. Soru şu, aşağıdaki App.Config değerlerini programlı olarak nasıl çoğaltabilirim?
App.Config öğemin parçası: (URI, inocent'i korumak için değiştirildi).
<endpoint address="http://www.myuri.com/Services/Services.svc/basic"
ancak kod örneğinde
, oluşturmak:EndpointAddress endpointAddress = new EndpointAddress("my.uri.com/service.svc");
adresleri aynı olmalıdır
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISmsEngineService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://www.myuri.com/Services/Services.svc/basic"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISmsEngineService"
contract="SmsServiceReference.ISmsEngineService" name="BasicHttpBinding_ISmsEngineService" />
</client>
Bu hile yaptı. Teşekkürler. –