Nie jest jasne, ale myślę, że pytasz niejawnie, to czy jest możliwe skonfigurowanie po stronie serwera tak, aby przekroczono limit czasu wszystkich połączeń, których przetworzenie trwa dłużej niż jedną minutę. Nie jest to możliwe
gravidThoughts
Odpowiedzi:
196
Czy masz na myśli stronę serwera czy klienta?
W przypadku klienta chciałbyś dostosować atrybut sendTimeout elementu powiązania. W przypadku usługi chciałbyś dostosować atrybut acceptTimeout elementu powiązania.
W menu Narzędzia w programie Visual Studio 2008 (lub 2005, jeśli masz zainstalowane odpowiednie rzeczy WCF) znajduje się opcja o nazwie „Edytor konfiguracji usługi WCF”.
Stamtąd możesz zmienić opcje wiązania zarówno dla klienta, jak i usług, jedna z tych opcji będzie dotyczyła limitów czasu.
publicstaticvoidMain(){Uri baseAddress =newUri("http://localhost/MyServer/MyService");try{ServiceHost serviceHost =newServiceHost(typeof(CalculatorService));WSHttpBinding binding =newWSHttpBinding();
binding.OpenTimeout=newTimeSpan(0,10,0);
binding.CloseTimeout=newTimeSpan(0,10,0);
binding.SendTimeout=newTimeSpan(0,10,0);
binding.ReceiveTimeout=newTimeSpan(0,10,0);
serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
serviceHost.Open();// The service can now be accessed.Console.WriteLine("The service is ready.");Console.WriteLine("Press <ENTER> to terminate service.");Console.WriteLine();Console.ReadLine();}catch(CommunicationException ex){// Handle exception ...}}
Odpowiedzi:
Czy masz na myśli stronę serwera czy klienta?
W przypadku klienta chciałbyś dostosować atrybut sendTimeout elementu powiązania. W przypadku usługi chciałbyś dostosować atrybut acceptTimeout elementu powiązania.
Oczywiście musisz zmapować żądany punkt końcowy do tego konkretnego powiązania.
źródło
receiveTimeout
stronie serwera zarządza określaniem bezczynności dla powiązań opartych na sesji. Na przykład serwer nie będzie używać tego ustawienia do podstawowych powiązań HTTP. Musisz ustawić własne limity czasu przetwarzania po stronie serwera dla WCFW menu Narzędzia w programie Visual Studio 2008 (lub 2005, jeśli masz zainstalowane odpowiednie rzeczy WCF) znajduje się opcja o nazwie „Edytor konfiguracji usługi WCF”.
Stamtąd możesz zmienić opcje wiązania zarówno dla klienta, jak i usług, jedna z tych opcji będzie dotyczyła limitów czasu.
źródło
Różne limity czasu oznaczają różne rzeczy. Kiedy pracujesz nad klientem ... prawdopodobnie patrzysz głównie na SendTimeout - sprawdź ten odnośnik - wspaniałe i odpowiednie wyjaśnienie: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /
źródło
Możesz wybrać dwa sposoby:
1) Kodem w kliencie
2) Za pomocą konsoli WebConfig na serwerze WWW
Aby uzyskać więcej informacji, zapoznaj się z oficjalną dokumentacją
Konfigurowanie wartości limitu czasu w powiązaniu
Klasa WSHttpBinding
źródło
Oprócz limitów czasu wiązania (które są w
Timespan
s), możesz również tego potrzebować. To zajmie kilka sekund.źródło