При работе с сервисом WCF я столкнулся с некоторой проблемой и получил две разные ошибки. 1. При доступе к сервису через WCFTectClient я получаю несанкционированную ошибку.2. При доступе к сервису через приложение ASP.Net по ссылке на сервис я получаю сообщение «Предоставленная схема URI« http »недействительна; ожидается« https ».»
В моей среде разработки все работает отлично, однако послехостинг это выбрасывает ошибки.Я попытался сопоставить и изменить настройки конфигурации в web.config, но безрезультатно.
Ниже приведены мои web.configs 1. Сервис web.config
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authentication mode="Windows" />
<system.serviceModel>
<client>
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_SomeOtherClient"
contract="SomeOtherClient_Contract}" name="BasicHttpBinding_SomeOtherClient" />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_SomeOtherClient1" contract="
{SomeOtherClient_Contract1}" name="BasicHttpBinding_SomeOtherClient1" />
</client>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_MyName">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="MEX" name="{SERVICE_CONFIGURATION_NAME}">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyName"
name="BasicHttpBinding_MyName" contract="MyService.Services.InterfaceName">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MEX">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceCredentials>
<clientCertificate>
<authentication mapClientCertificateToWindowsAccount="true"
/>
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
Приложение Web.Config
<configuration>
<system.web>
<browserCaps userAgentCacheKeyLength="256" />
<compilation debug="true" targetFramework="4.7.2" />
<authentication mode="Windows" />
<sessionState mode="InProc" timeout="20" />
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
</pages>
<customErrors mode="Off" defaultRedirect="~/Error.aspx">
</customErrors>
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>
</system.web>
<appSettings>
<add key="{WCF_SERVICE_URL}" value="http://ServerBaseURl/MyWCF_SERVICE_URL" />
</appSettings>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="1" />
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding openTimeout="01:50:00" receiveTimeout="01:50:00" sendTimeout="01:50:00" maxBufferPoolSize="20000000" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="128" maxStringContentLength="8388608" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
<binding name="BasicHttpBinding_Windows" maxReceivedMessageSize="2147483647">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
<binding name="BasicHttpBinding_MyName" receiveTimeout="00:20:00" sendTimeout="00:20:00" maxReceivedMessageSize="2147483647">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="MyServiceURL"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyName"
contract="yService.Services.InterfaceName"
name="BasicHttpBinding_MyName" />
</client>
</system.serviceModel>
<devExpress>
<settings rightToLeft="false" />
<compression enableHtmlCompression="false" enableCallbackCompression="true" enableResourceCompression="true" enableResourceMerging="true" />
<themes enableThemesAssembly="true" />
<errors callbackErrorRedirectUrl="" />
</devExpress>
</configuration>
Для WCF TestClient Ниже приведено исключение
Ошибка: невозможно получить метаданные из {MyServiceURL}, если этоСлужба Windows (R) Communication Foundation, к которой у вас есть доступ, убедитесь, что вы включили публикацию метаданных по указанному адресу.Для получения справки о включении публикации метаданных см. Документацию MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI ошибки Exchange: метаданные {MyServiceURL} содержат ссылку, которая не может быть разрешена: '{MyServiceURL}'.HTTP-запрос не авторизован с помощью схемы аутентификации клиента «Anonymous».Заголовок аутентификации, полученный от сервера, был 'Negotiate, NTLM'.Удаленный сервер возвратил ошибку: (401) Unauthorized.HTTP GET Error URI: {MyServiceURL} Произошла ошибка при загрузке «{MyServiceURL}».Сбой запроса с состоянием HTTP 401: не авторизован.
для приложения
Предоставленная схема URI 'http' недействительна;ожидаемый «https».Имя параметра: через описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail, System.ServiceModel, Версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089]]: предоставленная схема URI 'http' является недействительным;ожидаемый «https».Имя параметра: через
Ошибка источника:
Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение.Информация о происхождении и местонахождении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений.
Трассировка стека:
[FaultException`1: предоставленная схема URI 'http' недействительна;ожидаемый «https».Имя параметра через