Tôi có một dịch vụ WCF hoạt động ok nếu tôi tạo dịch vụ mà không chỉ định bất kỳ ràng buộc hoặc điểm cuối (nó đọc nó từ các giá trị được tạo ra trong App.config khi tôi đăng ký WCF thông qua Visual Studio).WCF: Làm thế nào tôi có thể lập trình tạo lại các giá trị App.config này?
Tôi có một phương pháp đơn giản mà trả về tài liệu tham khảo dịch vụ:
return new SmsServiceReference.SmsEngineServiceClient();
này hoạt động ok (vì các giá trị được đọc từ config). Tuy nhiên, tôi muốn có một số giá trị trong Cơ sở dữ liệu (ví dụ: URI) và muốn thực hiện một việc như sau:
Binding binding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("my.uri.com/service.svc");
return new SmsServiceReference.SmsEngineServiceClient(binding,endpointAddress);
Điều này không hiệu quả. Nó ném một ngoại lệ khi tôi cố gắng sử dụng tài liệu tham khảo dịch vụ.
Tôi nghi ngờ rằng điều này là do App.config của tôi có thêm thông tin mà hai dòng lên đó không cung cấp (rõ ràng). Câu hỏi là, làm thế nào tôi có thể tái tạo các giá trị App.Config sau đây theo chương trình?
Đây là đoạn của App.Config của tôi: (URI đã được thay đổi để bảo vệ người vô tội).
<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>
Điều này đã làm điều này. Cảm ơn. –