27

私はWCFで作業していますが、localhostでうまくいきました。本番サーバーに配置した後、例外が発生します

要求されたサービス ' http://global-kazway.kz/Service1.svc ' を有効にできませんでした。詳細については、サーバーの診断トレース ログを参照してください。

私はサービスに不慣れで、この問題をほぼ 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>
4

7 に答える 7

73

WCF アプリケーションのトラブルシューティングの最初の手順は、ブラウザーを起動してサービス URI を入力することです。したがって、クライアントに基づいて: http://global-kazway.kz/Service1.svcに移動します。

どのような結果が得られるかを見てみましょう。例外?サービス画面?通常、この画面から最良の情報を得ることができます。行動の欠落など、問題が何であるかを指摘することもあります。

web.config をデプロイ済みの web.config エントリと比較します。そこにも何かが見つかるかもしれません。最後に、フォルダーのセキュリティを管理する必要がある場合があります。しかし、ブラウザの表示は、すべてを非常に明確に説明することができます.

于 2012-06-05T18:25:18.687 に答える
8

私はプロジェクトに取り組んでおり、同じ問題に直面しました。イベント ビューアでエラーを追跡したところ、問題の場所がわかりました。

イベント ビューア メッセージ:

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>

于 2014-05-16T20:17:13.157 に答える
6

私はWCFで作業しており、localhostで正常に動作しました.本番サーバーに配置した後、「要求されたサービス、 'http://global-kazway.kz/Service1.svc' could not be詳細については、サーバーの診断トレース ログを参照してください

この MSDN の記事では、サーバー上でトレースを構成する方法について説明しています。完了したら、サーバーの診断トレース ログを確認すると、問題が見つかる可能性があります。

于 2012-06-05T18:29:53.407 に答える
2

エラーの詳細については、サービスの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>

これにより、エラーの詳細な説明が表示されます。

あなたが試みるかもしれない2番目のことはこれをチェックすることです:-

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

ベースアドレスがローカルホストでないことを確認してください。TC

于 2012-06-07T08:33:56.603 に答える
2

Visual Studio 2013 を使用して以下の手順に従って問題を解決できました。

  1. *.svc ファイルがあるプロジェクトフォルダーに移動します。
  2. *.svc ファイルを右クリック -->ブラウザーで表示
  3. サービスを閲覧できるかどうかを検証する

ここに画像の説明を入力

  1. app.config ファイルがあるか、サービスを使用するプロジェクト フォルダーに移動します。
  2. プロジェクトを右クリック->追加->サービス参照
  3. [検出] --> [サービス] の下で [サービスを選択] --> サービス参照に目的の名前を付けます --> [ OK]をクリックします
  4. 「Service References」フォルダーの下に「ServiceReference1」を作成し、app.configファイルを自動的に作成/更新します

ここに画像の説明を入力

于 2016-04-07T21:42:29.880 に答える