Ошибка сервера в приложении ‘/’. Ресурс не может быть найден. (404) при развертывании службы WCF в службе приложений Azure

#c# #wcf

#c# #wcf

Вопрос:

Я создаю службу WCF для хранения некоторых данных в Xamarin.Я создаю приложение Forms. Я развернул эту службу в службе приложений Azure. При переходе к URL-адресу я получаю следующую ошибку:

 Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /EventWCFService.svc
 

Кодирование службы WCF:

  public class EventWCFService : IEventWCFService
    {
        private static IEventService _eventService = new EventService(new EventRepository());
        public void AddEvent(Event @event)
        {
            try
            {
                if (String.IsNullOrWhiteSpace(@event.EventTitle) || @event == null)
                {
                    throw new FaultException("Event name is required");
                }

                _eventService.AddEvent(@event);
            }
            catch (Exception exception)
            {
                throw new FaultException($"Whoops... Something has gone wrong {exception.Message}");
            }
        }
        public IList<Event> GetAllEvents()
        {
            return _eventService.GetAllEvents();
        }
    }
 

Мой проект WCF также содержит репозитории и службы:

введите описание изображения здесь

IEventWCFService:

  [ServiceContract]
    public interface IEventWCFService
    {
        [OperationContract]
        IList<Event> GetAllEvents();
        [OperationContract]
        void AddEvent(Event @event);
    }
 

Web.Config:

 <?xml version="1.0"?>
<configuration>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.8" />
    <httpRuntime targetFramework="4.8"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the values 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="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 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>
 

Вещи, которые я пробовал:

  1. Прежде всего, я попытался зайти в свойства и создать виртуальный каталог — это не сработало и не решило проблему.
  2. Я попытался установить для «Конкретной страницы» значение пустой — это все равно не решило проблему.
  3. Я попытался создать новый сервис приложений — и все равно столкнулся с проблемой.

Я совсем новичок в WCF — так что прошу прощения, если это может быть ошибкой новичка. Я следую курсу Pluralsight, и я неплохо справлялся до части развертывания Azure.

Комментарии:

1. это чисто проблема WCF, она не имеет ничего общего с Xamarin

2. извиняюсь за это @Jason … Я, должно быть, запутался

Ответ №1:

Я решил эту проблему, создав и развернув новую службу приложений Azure непосредственно с портала Azure, а не из самой Visual Studio. Затем я развернул службу WCF непосредственно из существующей службы приложений, которую я только что создал.