Не могу активировать службу WCF

Я работаю над WCF, и он отлично работает на localhost. После того, как я разместил его на производственном сервере, это исключение

The requested service, 'http://global-kazway.kz/Service1.svc' could not be activated. See the server's diagnostic trace logs for more information

Я новичок в Службах и пытаюсь решить эту проблему почти 3 часа.

ЗдесьApp.config клиента;

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections></configSections>
  <connectionStrings>
    <add name="TestProject.Properties.Settings.DBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\1\Documents\visual studio 2010\Projects\TestProject\TestProject\AppData\DB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /><add name="DBEntities" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=C:\Users\1\Documents\visual studio 2010\Projects\TestProject\TestProject\AppData\DB.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /><add name="DBEntities1" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\AppData\DB.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00"
          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
          allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
          maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
          messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
          useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://global-kazway.kz/Service1.svc" binding="basicHttpBinding"
        bindingConfiguration="BasicHttpBinding_IService1" contract="kazwayServiceReference.IService1"
        name="BasicHttpBinding_IService1" />
    </client>
  </system.serviceModel>
</configuration>
 TarasB05 июн. 2012 г., 20:27
предоставьте также конфигурацию службы, пожалуйста.

Ответы на вопрос(6)

Решение Вопроса

узера и ввод URI службы. Итак, в зависимости от клиента: вы перейдете кhttp://global-kazway.kz/Service1.svc

Теперь посмотрим, какие результаты вы получите. Исключение? Сервисный экран? Обычно вы можете получить лучшую информацию с этого экрана! Иногда это указывает на то, что ваша проблема, например, отсутствует поведение.

Сравните ваш web.config с развернутыми записями web.config. Вы также можете найти что-то там. Наконец, вам, возможно, придется управлять безопасностью своей папки. Но дисплей браузера может объяснить все для вас очень четко.

m working over WCF and it worked fine on localhost.After i placed it to the production server, it thows me an exception "The requested service, 'http://global-kazway.kz/Service1.svc' could not be activated. See the server's diagnostic trace logs for more information"

В этой статье MSDN описывается, как настроить трассировку на сервере, После того, как вы это сделаете, вы сможете просмотреть журналы диагностической трассировки сервера и, скорее всего, найдете проблему.

Когда я проверил Просмотр событий, чтобы отследить ошибку, я обнаружил, где проблема.

Сообщение средства просмотра событий:

Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/7540993
 Exception: System.ServiceModel.ServiceActivationException: The service '/CODWebService/Service1.svc' cannot be activated due to an exception during compilation.  The exception message is: Memory gates checking failed because the free memory (164065280 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.. ---> System.InsufficientMemoryException: Memory gates checking failed because the free memory (164065280 bytes) is less than 5% of total memory.  As a result, the service will not be available for incoming requests.  To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.

Затем я добавил приведенный ниже код в файл web.config моей службы.

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="1" />

Этот элемент должен быть помещен в<system.serviceModel>

пожалуйста, вставьте этот код в файл web.config службы: -

  <serviceBehaviors>
    <behavior name="MyServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>

Затем используйте это сервисное поведение в вашем сервисе так:

<service name="MyService" behaviorConfiguration="MyServiceBehavior" >
        <endpoint address="" binding="basicHttpBinding"  xxxx="" xxxxx="" xxxxx="" xxxx="" xxxx="" />
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
        <host>
          <baseAddresses>
            <add baseAddress="http://ServerAddress:AnyPortIfspecified/VirtualDirname"/>
          </baseAddresses>
        </host>
      </service>

Это даст вам подробное описание ошибки.

Второе, что вы можете попробовать, это проверить это:

<host>
        <baseAddresses>
          <add baseAddress="http://ServerAddress:AnyPortIf specified/VirtualDir name"/>
        </baseAddresses>
      </host>

убедитесь, что ваш базовый адрес не localhost. TC

 27 апр. 2015 г., 18:06
Я хочу добавитьbehavior в моем заявлении, чтобы добраться до сути этой проблемы, но, похоже, ваш ответ неполон. После этого нет ничего: - & quot ;. Тем не менее, я проголосовал за ваш ответ, потому что он указал мой правильный путь.

выполнив следующие шаги с помощью Visual Studio 2013:

Go to your project folder where you have your *.svc file Right Click *.svc file --> View in browser Validate if you are able to browse the service

enter image description here

Go to your project folder where you have your app.config file or where you want to consume the service. Right click project-->Add-->Service Reference Click Discover-->Under Services Select Service-->Give desired name to your service reference-->Click OK It will create "ServiceReference1" under the folder "Service References" & automatically create/update app.config file

enter image description here

Http: // youservice: 808 / Area.Service / Service.svc) и поместите его в поле URL браузера, чтобы проверить, работает ли служба.

В моем случае он не работал.

На удаленном сервере был запущен процесс, который использовал много или ЦП и ОЗУ (процесс sql)

Это блокировало сервис.

При закрытии / остановке некоторых процессов в диспетчере задач на удаленном сервере восстанавливается служба.

Ваш ответ на вопрос