Ho una pagina di servizio WCF che esegue solo WebGets/WebInvokes su SSL - funziona perfettamente sul mio computer locale (certificato autofirmato). In produzione, tuttavia, posso raggiungere service.svc (e mi dà il messaggio su come consumare) ma service.svc/AnyRequest restituisce un 404. Entrambi gli ambienti sono ospitati in IIS 7.5.Servizio WCF restituisce 404 su richieste di metodo
Ho abilitato la traccia e il servizio non sta nemmeno prelevando nessuna delle richieste del metodo (ad esempio service.svc/SomeRequest), tuttavia sta elaborando correttamente service.svc
. Sta anche ascoltando allo https://computername.domain.net/path/service.svc
- è normale? Dovrebbe normalmente puntare a https://publicfacing.com/path/service.svc
?
Si noti inoltre che il server di produzione ospita più siti all'interno di IIS.
Di seguito è la sezione system.serviceModel del mio web.config. Lo SSLBehave è stato suggerito da here.
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="None"></transport>
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="SSLBehave">
<useRequestHeadersForMetadataAddress>
<defaultPorts>
<add scheme="https" port="443"/>
</defaultPorts>
</useRequestHeadersForMetadataAddress>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="UserManagement.ajaxAspNetAjaxBehavior">
<webHttp defaultOutgoingResponseFormat="Json" defaultBodyStyle="Wrapped" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
<services>
<service name="UserManagement.ajax" behaviorConfiguration="SSLBehave">
<endpoint address="" behaviorConfiguration="UserManagement.ajaxAspNetAjaxBehavior"
binding="webHttpBinding" bindingConfiguration="TransportSecurity" contract="UserManagement.ajax" />
</service>
</services>
</system.serviceModel>
il servizio funziona se richiamato localmente? – theusguy
@theusguy Negativo, che restituisce ancora 404. – Snuffleupagus
Se il problema persiste, la mia risposta potrebbe aiutarti –