Mam usługę WCF działającą poprawnie na moim komputerze lokalnym. Umieściłem go na serwerach i otrzymuję następujący błąd:
Wystąpił błąd podczas odbierania odpowiedzi HTTP na adres http: //xx.xx.x.xx: 8200 / Services / WCFClient.svc . Może to być spowodowane tym, że powiązanie punktu końcowego usługi nie używa protokołu HTTP. Może to być również spowodowane przerwaniem kontekstu żądania HTTP przez serwer (prawdopodobnie z powodu zamknięcia usługi). Zobacz dzienniki serwera, aby uzyskać więcej informacji.]
Poszedłem do usługi w url i działa poprawnie. Wszystko, co robię dla funkcji, to zwracanie ciągu do nazwy obrazu, więc przekazywanych danych nie jest dużo. Prześledziłem dziennik i daje mi te same informacje. Oto moja konfiguracja klienta:
<binding name="basicHttpBinding_IWCFClient" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
<endpoint name="basicHttpBinding_IWCFClient"
address="http://localhost:4295/Services/WCFClient.svc"
binding="basicHttpBinding"
bindingConfiguration="basicHttpBinding_IWCFClient"
behaviorConfiguration="WCFGraphicManagementTool.Services.ClientBehavior"
contract="WCFClient.IWCFClient" />
Oto moja konfiguracja serwera:
<service behaviorConfiguration="WCFGraphicManagementTool.Services.WCFClientBehavior"
name="WCFGraphicManagementTool.Services.WCFClient">
<endpoint name="basicHttpBinding_IWCFClient"
address=""
binding="basicHttpBinding"
contract="WCFGraphicManagementTool.Contracts.IWCFClient" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
<behavior name="WCFGraphicManagementTool.Services.WCFClientBehavior">
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<serviceThrottling maxConcurrentCalls="120" maxConcurrentSessions="120"
maxConcurrentInstances="120" />
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
Czy byłoby to ustawienie na serwerze, ponieważ działa na moim komputerze lokalnym?