2011-02-04 9 views
2

솔루션에 익숙해지기 전에이 질문을했는데 더 많은 테스트와 디버깅을 수행하고 새로운 정보를 얻었으므로 다음 정보를 얻기 위해 다시 묻습니다. 이것의 밑바닥은 모든 것을 위해.Silverlight 4 WCF Ria 서비스 제한 시간

1 분 후에 내 도메인 서비스가 시간 초과되었습니다. 모든 게시물을 읽고 부분 클래스를 만들고 명시 적으로 시간 제한 값을 설정하는 방법을 보았습니다. 정확히 완료했지만 1 분 후에도 시간이 초과되었습니다. 이 경고는 부분 클래스/메소드에서 시간 제한을 명시 적으로 설정 한 후에 더 이상 표준 시간 초과 오류가 발생하지 않는다는 것입니다. 대신에 나는이 얻을 :

{System.Net.WebException: The remote server returned an error: NotFound. ---> System.Net.WebException: The remote server returned an error: NotFound. at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.BrowserHttpWebRequest.<>c_DisplayClass5.b_4(Object sendState) at System.Net.Browser.AsyncHelper.<>c_DisplayClass2.b_0(Object sendState) --- End of inner exception stack trace --- at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state) at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)}

저는 여기에 시간 제한 값을 설정 내 일부 클래스는 나는이 디버깅이 값은 서비스에 전화를 걸기 전에 설정되고 있다는 것을 확실히 알고있다.. 내가 작업하고있는 서비스 메소드는 TestTimeout()입니다. 호출 후 정확히 1 분 후에 위와 같은 예외가 발생할 때까지 앉아서 기다립니다.

public partial class MyDomainContext 
    { 
    partial void OnCreated() 
    { 
     var proxy = (WebDomainClient<MyDomainContext.IMyDomainServiceContract>)this.DomainClient; 
     proxy.ChannelFactory.Endpoint.Binding.SendTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.CloseTimeout = new TimeSpan(0, 5, 0); 
     proxy.ChannelFactory.Endpoint.Binding.OpenTimeout = new TimeSpan(0, 5, 0); 

    } 
    } 

는 서버 내 테스트 기능 :

[Invoke] 
public void TestTimeout() 
{ 
    while (true) 
    { 
    Thread.Sleep(100); // after one full minute, I get the above exception 
    } 
} 

다른 무언가가 될 수 시간 초과? 내 로컬 개발 컴퓨터뿐만 아니라 IIS7을 실행하는 내 프로덕션 서버에서도 동일한 문제가 발생합니다. 나는 이것이 무엇이 될 수 있는지에 대해 당황 스럽다. 나는 더 이상 표준 타임 아웃 예외를 얻지 않아서 타임 아웃 값이 무시되고 있다고 생각하지 않는다. 시간 초과가 발생하는 다른 장소가 있다고 생각합니다.

아이디어가 있으십니까?

-Scott

답변

0

이 그냥 생각이 .. 일분에 해당 될 수있다, 당신이 당신의 asp.net 세션 시간 제한이 명시 적으로 만드는 노력이

+0

시도해 보니 .... – TChadwick

0

프록시의 생성자에서이 퍼팅보십시오 :

InnerChannel.OperationTimeout = new TimeSpan(24, 0, 0);