WCF на Windows 7 почему не работает.? - PullRequest
0 голосов
/ 03 января 2011

Я новый с WCF. Я создаю wcf для сценария печати на стороне сервера ... Я размещаю wcf dll в консольном приложении. Ниже мой код:

class Program
{
    static void Main(string[] args)
    {
        using (ServiceHost host = new ServiceHost(typeof(PrintBarcode)))
        {
            host.Open();
            Console.WriteLine("The service is ready...");
            Console.WriteLine("Press <Enter> to stop the service.");
            Console.ReadLine();
            host.Close();
        }

    }
}

А это мой app.config:

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <!-- When deploying the service library project, the content of the config file must be added to the host's 
  app.config file. System.Configuration does not support config files for libraries. -->
  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
    <services>
      <service behaviorConfiguration="CTIHandHeld.WCF.PrintBarcodeWcfServiceLibrary.Service1Behavior"
        name="CTIHandHeld.WCF.PrintBarcodeWcfServiceLibrary.PrintBarcode">
        <endpoint address="" binding="netTcpBinding" bindingConfiguration="TcpBindingConfiguration"
          contract="CTIHandHeld.WCF.PrintBarcodeWcfServiceLibrary.IPrintBarcode" />
        <endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
          contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:3518/PrintBarcodeService" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="TcpBindingConfiguration">
          <security mode="Transport"/>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="CTIHandHeld.WCF.PrintBarcodeWcfServiceLibrary.Service1Behavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Этот код работает в Windows XP .... Почему он не работает, если я запускаю его на Windows 7? Я запускаю его как администратор и с выключенным брандмауэром.

Документ появляется только в очереди на печать и исчезает без предупреждения или ошибки ... Но на самом деле печать не происходит.

1 Ответ

1 голос
/ 03 января 2011

Этот код работает в Windows XP .... Почему он не работает, если я запускаю его в Windows 7?

Вам необходимо запустить приложение (хостинг) от имени администратора.Открытие порта для прослушивания является привилегированной операцией.

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