Когда я ввожу адрес своей службы, я вижу файл WSDL. Однако когда я добавляю суффикс к URL-адресу, я получаю сообщение об ошибке: «конечная точка не найдена». Это определенно из-за того, что что-то не так с моей декларацией модели обслуживания, но через несколько часов я склонен признать, что это вне меня.
Я убедился, что пространства имен верны, как описано здесь.
Первый URL работает. Другой - нет.
http://---.azurewebsites.net/MyService.svc/ < br> http://---.azurewebsites.net/MyService.svc/Ping
http://---.azurewebsites.net/MyService.svc/Ping/ (как предлагается здесь)
В поведении я объявил два поведения - одно для конечной точки, а второе для службы.
<behaviors>
<endpointBehaviors>
<behavior name="PingEndPointBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name ="PingServiceBehavior">
<serviceMetadata httpGetEnabled="true"
httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true"
httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
Я объявил следующую привязку для доступа через строку URL в браузере.
<bindings>
<webHttpBinding></webHttpBinding>
</bindings>
В services я объявил две конечные точки (я также тестировал только первую).
<service name="MyProject.MyService"
behaviorConfiguration="PingServiceBehavior">
<endpoint name="PingEndPoint"
behaviorConfiguration="PingEndPointBehavior"
address="Ping"
binding="webHttpBinding"
contract="MyProject.IMyService"/>
<endpoint contract="IMetadataExchange"
binding="mexHttpBinding"
address="mex" />
</service>
В моем файле конфигурации также есть следующее. Сомневаюсь в его значении, но никто не знает.
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true"/>