Я создал службу WCF с помощью «Облачной службы >> Веб-роль WCF» (как показано ниже). ( Это всего лишь тестовое упражнение, которое я проводил, чтобы убедиться, что WCF можно разместить в службе приложений Azure, а подключение через внешнее приложение, созданное с помощью C #, работает. )
[введите описание изображения здесь] 1
Мой WebConfig, как показано ниже:
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<trace>
<listeners>
<add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
name="AzureDiagnostics">
<!--<filter type="" />-->
</add>
</listeners>
</trace>
</system.diagnostics>
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<authentication mode="None"/>
</system.web>
<system.serviceModel>
<!--DECLARE BINDINGS-->
<bindings>
<wsHttpBinding>
<binding name="CustomBinding"
openTimeout="00:20:00"
receiveTimeout="00:20:00" closeTimeout="00:20:00"
sendTimeout="00:20:00" >
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message algorithmSuite="Default" clientCredentialType="None"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<!--DECLARE BEHAVIOUR-->
<behaviors>
<serviceBehaviors>
<behavior name="CustomBehaviour">
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<!--CREATE SERVICE WITH ENDPOINTS-->
<services>
<!-- Service For Main Implementation-->
<service name="DolphinBimUserRegistration.Service1" behaviorConfiguration="CustomBehaviour">
<endpoint address="DBWsHttp" binding="wsHttpBinding" bindingConfiguration="CustomBinding" contract="DBIMInterface.IDBIMService"/>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
После публикации службы WCF в службе приложений Azure я могу создать ссылку на службу. Пока все работает отлично ..
Во время отладки, когда я пытаюсь вызвать базовую функцию «GetData» внутри службы WCF, она часто запрашивает учетные данные пользователя (как показано на рисунке ниже).
введите описание изображения здесь
Мне нужно найти способ доступа к службе Azure Web App, не вводя учетные данные вручную. Я пытался разобраться в этом в течение длительного времени. Кажется, ничего не работает.
- Я где-то читал, что мы можем ввести учетные данные, полученные с помощью «Get Publish Profile» внутри Azure, можно использовать для входа в систему. Но это не очень хороший подход. Мы не можем вводить такую конфиденциальную информацию в клиентское приложение. Когда клиентское приложение используется разными людьми, они не должны вводить учетные данные для доступа к Azure Web App. Как избежать ввода учетных данных? Как Visual Studio (или клиентское приложение) подключается к веб-приложению Azure?