내 서버에서 IIS 7.5에서 호스팅되는 WCF 서비스가 있습니다. 내 서비스에서 Entity Framework 5.0을 사용했습니다.WCF 성능 : WCF 서비스에 연결하는 데 오랜 시간이 걸림
서비스 참조를 추가하고 사이트에서 클라이언트를 생성하여 로컬 시스템에서 해당 서비스를 호출하면 응답을 받기까지 약 40 초가 소요됩니다. 나는 내 지역에있는 동일한 서비스를 호출하려고했는데 여기에 불과 3 ~ 4 초 걸린다.
<binding name="WSHttpBinding_IMyWCFService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:50:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" />
</security>
</binding>
<endpoint address="https://<url>/MyWCFService.svc/soap"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyWCFService"
contract="MerchantService.IMyWCFService" name="WSHttpBinding_IMyWCFService" />
먼저 나는 그것이의 문제라고 생각 :
로컬 시스템에있는 사이트 서버에있는 서비스에 대한 참조를 추가 한 후, 바인딩 및 엔드 포인트 웹 설정에 추가 된 것 같습니다 엔티티 프레임 워크. 그런 다음 Entity Framework 프로파일 러를 사용하여 메소드의 실행 시간을 확인했습니다. 거의 1 초가 걸리지 않습니다.
또한 서비스를 호출 할 때 추가 할 헤더를 추가해야합니다.
그래서 40 초가 걸립니다. 그리고 느린 시동이나 처음으로 시간을 들여서는 안됩니다. 항상 많은 시간을 필요로합니다.
네트워크 속도가이 지연의 원인 일 수 있습니까? 그렇다면 어느 정도까지?
서비스 목록 목록을 반환합니다. 문제가 될 수 있습니다. 목록을 반환해서는 안됩니다. 대안은 무엇이 될 수 있습니까?
또한 Entity 프레임 워크는 요청이오고 데이터베이스 연결에 시간이 걸릴 때마다 DB에 연결합니다. 가능할 수 있습니까?
도와주세요. 감사
안녕하세요, Deepansh, 답장을 보내 주셔서 감사합니다. 네트워크가 증가한 시간에 문제가 될 수 있지만, 가장 빠른 n/w로 서비스를 테스트 할 수있는 시간은 25 초입니다. 나는 문제가 EF에 있다는 것을 알았다. 답을 참조하십시오. – Deeps