Самостоятельная служба WCF не работает, когда я набираю URL в браузере - PullRequest
4 голосов
/ 25 сентября 2011

Я новичок в WCF. Я сделал простой самодостаточный сервис и добавил app.config, но когда я набираю адрес в браузере, он не показывает мне страницу сервиса, которую мы получаем при создании нашего сервиса http://localhost:8067/WCFService, он не отображает сервис, как он показывает мы запускаем сервис.

Но когда я пытаюсь добавить базовый сервис в public static void main вместо app.config, он работает нормально, я не получаю yy ?? Может кто-нибудь помочь мне?

Ниже добавлен файл app.config, добавленный вручную:

<configuration>     
   <system.serviceModel>     
      <services>     
         <service name="SelfHostedWCFService.WCFService">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService">     
            </endpoint>     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 

Ниже следует Program.cs:

static void Main(string[] args)     
{     
    ServiceHost host = new ServiceHost(typeof(SelfHostedWCFService.WCFService));
    host.Open();     
    Console.WriteLine("Server is Running...............");      
    Console.ReadLine();
}

Ниже приведен файл интерфейса, добавленный вручную:

namespace SelfHostedWCFService     
{      
    [ServiceContract]     
    interface IWCFService      
    {     
        [OperationContract]     
        int Add(int a, int b);      
        [OperationContract]     
        int Sub(int a, int b);      
        [OperationContract]     
        int Mul(int a, int b);
    }     
} 

Ниже добавлен файл service.cs, добавленный вручную:

namespace SelfHostedWCFService
{     
    class WCFService:IWCFService     
    {     
         public int Add(int a, int b) { return (a + b); }      
         public int Sub(int a, int b) { return (a - b); }      
         public int Mul(int a, int b) { return (a * b); } 
    }     
} 

Что-то не так с моим app.config или каким-то другим понятием ??

1 Ответ

2 голосов
/ 25 сентября 2011

На первый взгляд все выглядит нормально - вы уверены служба не работает ??

Без публикации каких-либо метаданных вы не можете протестировать службу с помощью WCF Test Client , а также не можете сгенерировать для нее прокси на стороне клиента ....

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

Чтобы добавить метаданные, измените вашу конфигурацию на:

<configuration>     
   <system.serviceModel>     
      <behaviors>
          <serviceBehaviors>
             <behavior name="Metadata">
                <serviceMetadata />
             </behavior>
          </serviceBehaviors>
      </behaviors>
      <services>     
         <service name="SelfHostedWCFService.WCFService" behaviorConfiguration="Metadata">     
            <endpoint
                address="http://localhost:8067/WCFService"
                binding="wsHttpBinding"
                contract="SelfHostedWCFService.IWCFService" />     
            <endpoint address="http://localhost:8067/WCFService/mex"
                      binding="mexHttpBinding" contract="IMetadataExchange" />     
         </service>     
      </services>     
   </system.serviceModel>     
</configuration> 

Даже с этим конфигом вы не увидите ни одной страницы службы при переходе к URL - но служба запущена и работает - просто используйте Тестовый клиент WCF и убедитесь сами!

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