Переопределение вспомогательной страницы WCF REST 4.0 по умолчанию - PullRequest
1 голос
/ 16 апреля 2011

Я пытался найти способ переопределить стандартную вспомогательную страницу WVF REST 4.0 своей собственной, и наткнулся на этот пост:

http://code.msdn.microsoft.com/WCF-Custom-Help-Page-6f5a90f0

Я былпытаюсь использовать тот же подход в размещенной службе IIS, используя следующий код:

namespace WcfHelpRestService
{
    public class Global : HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes();
        }

        private void RegisterRoutes()
        {
            // Edit the base address of Service1 by replacing the "Service1" string below
            var factory = new MyServiceHostFactory();

            RouteTable.Routes.Add(new ServiceRoute("Service1", factory, typeof(Service1)));
        }
    }
}

namespace WcfHelpRestService
{
    public class MyServiceHostFactory : WebServiceHostFactory
    {
        public MyServiceHostFactory ()
        {

        }
        protected override System.ServiceModel.ServiceHost CreateServiceHost(Type             serviceType, Uri[] baseAddresses)
        {
            return new MyServiceHost(serviceType, baseAddresses);
        }
    }
}

namespace WcfHelpRestService
{
    public class MyServiceHost : WebServiceHost
    {
        public MyServiceHost(Type serviceType, Uri[] baseAddresses): base(serviceType,  baseAddresses)   
        {

        }
        public override void AddServiceEndpoint(System.ServiceModel.Description.ServiceEndpoint endpoint)
        {
            endpoint.Behaviors.Add(new HelpPageEndpointBehavior("ACME LLC"));
            base.AddServiceEndpoint(endpoint);
        }
    }
}

, однако я продолжаю получать сообщение об ошибке:

[AddressAlreadyInUseException: HTTP не может зарегистрировать URL http://+:51443/Service1/help/, поскольку TCP-порт 51443 используется другим приложением.]
System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen () + 1106

не совсем уверен, что я делаюнеправильно, поэтому любая помощь будет принята с благодарностью.

TIA

Søren

1 Ответ

0 голосов
/ 05 декабря 2011

Похоже, этот адрес заблокирован исключительно другим приложением.

Это может быть в случае:

  • когда вы используете тот же адрес для какого-либо другого приложения.
  • когда вы дважды запустили одно и то же приложение с одним и тем же адресом
  • при использовании IIS 5.1, который блокирует исключительно порт в вашем случае 51443.

Сверху похож на третий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...