- How to start wcf service on demand by client call?
- <%@ ServiceHost Language="C#" Debug="true" Service="AnketeService.AnketeService" %>
- <system.serviceModel>
- <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
- <bindings>
- <wsHttpBinding>
- <binding name="NoSecurityPlusRM" openTimeout="00:10:00" sendTimeout="00:10:00">
- <reliableSession enabled="true" />
- <security mode="None" />
- </binding>
- </wsHttpBinding>
- </bindings>
- <services>
- <service behaviorConfiguration="Metadata" name="AnketeService.AnketeService">
- <endpoint address="" binding="wsHttpBinding" bindingConfiguration="NoSecurityPlusRM"
- contract="AnketeService.IAnketeService">
- <identity>
- <dns value="localhost" />
- </identity>
- </endpoint>
- <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
- </service>
- </services>
- <behaviors>
- <serviceBehaviors>
- <behavior name="Metadata">
- <serviceMetadata httpGetEnabled="true" />
- </behavior>
- </serviceBehaviors>
- <endpointBehaviors>
- <behavior name="wsHttpBindingBehavior">
- <callbackTimeouts transactionTimeout="23:59:59" />
- </behavior>
- </endpointBehaviors>
- </behaviors>
- </system.serviceModel>
- [ServiceBehavior(Name="Ankete servis", InstanceContextMode=InstanceContextMode.PerCall , ConcurrencyMode=ConcurrencyMode.Single)]
- public class AnketeService : IAnketeService
- {
- UsersItems allUsers = new UsersItems();
- AnketaItems AnketaOfUserName = new AnketaItems();
- public UsersItems getUsersNames()
- {
- return allUsers.ReturnData();
- }
- public AnketaItems getAnketeGledeUName(string userName)
- {
- return AnketaOfUserName.ReturnAnketeGledeUName(userName);
- }
- }
- [ServiceContract(Name = "AnketeService", Namespace = "http://MartinFri/Ankete/2011-2012")]
- public interface IAnketeService
- {
- [OperationContract]
- UsersItems getUsersNames();
- [OperationContract]
- AnketaItems getAnketeGledeUName(string userName);
- public partial class ClientConsumeWCF : System.Web.UI.Page
- {
- AnketeServiceClient client = new AnketeServiceClient("WSHttpBinding_AnketeService");
- AnketaItems AItem = new AnketaItems();
- protected void Page_Load(object sender, EventArgs e)
- {
- this.btnLoad.Click += new EventHandler(btnLoad_Click);
- }
- void btnLoad_Click(object sender, EventArgs e)
- {
- List<string> anketeList = new List<string>();
- if (ddlUserji.SelectedItem != null)
- {
- AItem = client.getAnketeGledeUName(Convert.ToString(ddlUserji.SelectedItem));
- List<AnketaItem> ankete = AItem.ListAnketaGledeUName;
- GVAnkete.DataSource = ankete;
- GVAnkete.DataBind();
- }
- AItem.UserFirstName = (Environment.MachineName).ToString();
- TextBox1.Text = client.reciHello(AItem);
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.serviceModel>
- <bindings>
- <basicHttpBinding>
- <binding name="BasicHttpBinding_AnketeService" 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>
- <wsHttpBinding>
- <binding name="WSHttpBinding_AnketeService" closeTimeout="00:10:00"
- openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
- bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
- maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
- messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
- allowCookies="false">
- <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
- maxBytesPerRead="4096" maxNameTableCharCount="16384" />
- <reliableSession ordered="true" inactivityTimeout="00:10:00"
- enabled="true" />
- <security mode="None">
- <transport clientCredentialType="Windows" proxyCredentialType="None"
- realm="" />
- <message clientCredentialType="Windows" negotiateServiceCredential="true"
- establishSecurityContext="true" />
- </security>
- </binding>
- </wsHttpBinding>
- </bindings>
- <client>
- <endpoint address="http://localhost:56507/AnketeService.svc"
- binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_AnketeService"
- contract="AnketeServiceReference.AnketeService" name="WSHttpBinding_AnketeService" />
- </client>
- </system.serviceModel>
- </configuration>