2009-04-02 25 views
23

Mam usługę sieci Web napisaną w języku C#, która mieszka w witrynie programu SharePoint. I zostały zmodyfikowane web.config z następującego kodu:Ustawianie limitu czasu usługi .NET Web Service

<configuration> 
    <system.web> 
    <httpRuntime executionTimeout="360" /> 

...

dla pliku IIS Inetpub, pliku web.config SP ISAPI i web.config układy Sp. Zmodyfikowałem również plik machine.config z tym samym kodem i próbowałem znieść wszelkie przekroczenia czasu, które widzę w IIS.

Kiedy zadzwonię do tej usługi internetowej z aplikacji Windows C#, mogę przejść do metody internetowej i rozpocząć debugowanie zmiennej, ale po krótkim czasie (~ 1 minuta, może mniej) wartości zmiennych nie są już obecne, ponieważ to się stanie wrócił:

System.Net.WebException "Żądanie zostało przerwane: operacja przekroczyła limit czasu."

Próbuję dowiedzieć się, gdzie należy ustawić prawidłowe wartości timeout i jak. Po wprowadzeniu każdej zmiany restartuję usługi IIS, ale nic się nie zmienia, aby uzyskać inne wyniki.

Dzięki

Odpowiedz

24

Spróbuj ustawić wartość limitu czasu w swojej internetowej klasy proxy usługi:

WebReference.ProxyClass myProxy = new WebReference.ProxyClass(); 
myProxy.Timeout = 100000; //in milliseconds, e.g. 100 seconds 
+0

Dokumentacja online mówi, że executionTimeout jest w sekundach chociaż na msdn ... –

+0

masz rację .... Ja zaktualizowałem moją odpowiedź. Czy próbowałeś ustawić wartość limitu czasu na klasie proxy? –

+0

możesz wyjaśnić, gdzie sugerujesz to zrobić? Mam instancję usługi sieci web, ale nie widzę żadnych właściwości dla ProxyClass, tylko Proxy ... dzięki –

17

Po stworzeniu swojego klienta podając wiążącą i końcowy adres, można przypisać OperationTimeout,

client.InnerChannel.OperationTimeout = new TimeSpan(0, 5, 0); 
+0

Kiedy próbowałem to nie wydaje się, aby jakakolwiek różnica – Jimbo

+0

private void SetRequestTimeout (IClientChannel klienta) { if (klient! = Null) { client.OperationTimeout = new TimeSpan (0, TIMEOUT_EXPIRE_IN_MIN, 0); } } –

+0

robi to w ten sposób? powinien ustawić limit czasu. –

Powiązane problemy