Привет и спасибо, что искали.
У меня есть приложение, в котором интерфейс вызывает веб-службу из углового интерфейса. Недавно я добавил привязки https к IIS из соображений соответствия.
Предыдущая версия работала, потому что она содержала только http-привязку в веб-конфигурации. F5 получит http-запрос для службы, изменит его на https, а затем отправит его на порт 80, который работал, потому что конечная точка http была в файле web.config.
Испытанная версия работала в тесте, потому что не было задействовано F5, все было просто отправлено на привязку https, и все было в порядке. Теперь с двумя привязками в смеси при вызове веб-службы я получаю 404 not found, потому что я думаю, что сейчас что-то не так с моей конечной точкой http. Если бы я мог вас побеспокоить, пожалуйста, посмотрите на до и после и посмотрите, что я делаю не так. Серверы - Windows Server 2016.
Исходная версия, которая работает только с конечной точкой http, которая F5 переключает на https и отправляет -> порт 80
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name = "trakWebclientServices.WebclientServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding maxReceivedMessageSize = "2147483647">
<readerQuotas maxDepth = "2147483647" maxStringContentLength = "2147483647" maxArrayLength = "2147483647" maxBytesPerRead = "2147483647" maxNameTableCharCount = "2147483647" />
<security mode = "TransportCredentialOnly">
<transport clientCredentialType = "Windows" />
</security>
</binding>
</webHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled = "true" multipleSiteBindingsEnabled = "true" />
<services>
<service name = "trakWebclientServices.WebclientService">
<endpoint address = "" behaviorConfiguration = "trakWebclientServices.WebclientServiceAspNetAjaxBehavior" binding = "webHttpBinding" contract = "trakWebclientServices.WebclientService" />
</service>
</services>
</system.serviceModel>
Вот попытка версии, которая терпит неудачу с привязками как http, так и https с 404, не найденным при использовании с F5, но работает в тестовой среде, которая не включает F5.
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name = "trakWebclientServices.WebclientServiceAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<webHttpBinding>
<binding maxReceivedMessageSize = "2147483647">
<readerQuotas maxDepth = "2147483647" maxStringContentLength = "2147483647" maxArrayLength = "2147483647" maxBytesPerRead = "2147483647" maxNameTableCharCount = "2147483647" />
<security mode = "None">
</security>
</binding>
<binding name = "pt_httpsBinding" maxReceivedMessageSize = "2147483647">
<readerQuotas maxDepth = "2147483647" maxStringContentLength = "2147483647" maxArrayLength = "2147483647" maxBytesPerRead = "2147483647" maxNameTableCharCount = "2147483647"/>
<security mode = "Transport">
<transport clientCredentialType = "None"/>
</security>
</binding>
</webHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled = "true" multipleSiteBindingsEnabled = "true" />
<services>
<service name = "trakWebclientServices.WebclientService">
<endpoint address = "" behaviorConfiguration = "trakWebclientServices.WebclientServiceAspNetAjaxBehavior" binding = "webHttpBinding" contract = "trakWebclientServices.WebclientService" />
</service>
</services>
</system.serviceModel>
Еще раз спасибо, что посмотрели.
Я попробую это. Мой URL-адрес в IIS не изменился. Я просто добавил привязку https.
Ошибка 404 должна быть проблемой с вашим URL-адресом, я предлагаю вам включить справочный документ для просмотра правильного URL-адреса: stackoverflow.com/questions/64412182/…