WCF の基本構成に問題があります。私は携帯電話アプリケーションに取り組んでいます。最初に、basicHttpBinding を使用するテスト デスクトップ アプリケーションを作成しましたが、すべて問題ありませんでした。次に、同じコードを使用しました (違いは ServerReference だけです - 電話では、NetCFSvcUtil を使用して生成された 2 つのサーバー ファイルを使用しました)。電話アプリケーションで、Endpoint no Found Exception が発生します。以下に私の設定を入れています。助けや提案をいただければ幸いです。
よろしく。
電話側の例外:
メッセージを受け入れることができるhttp://localhost:4444/Service/PhoneServiceでリッスンしているエンドポイントはありませんでし た。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。
電話の設定:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding" 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="" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:4444/Service/PhoneService/"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding"
contract="IPhoneService" name="BasicHttpBinding" />
</client>
</system.serviceModel>
** サーバー構成の適切なフラグメント**
<service name="Server.PhoneService" behaviorConfiguration="Server.PhoneServiceBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="" contract="Server.IPhoneService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:4444/Service/PhoneService" />
</baseAddresses>
</host>
</service>
//______________________________//
<behavior name="Server.PhoneServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
*ブラウザでの設定 *
電話サービス サービス
サービスを作成しました。
このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります。これは、コマンド ラインから次の構文で svcutil.exe ツールを使用して行うことができます。
svcutil.exe http://localhost:4444/Service/PhoneService?wsdl
これにより、クライアント クラスを含む構成ファイルとコード ファイルが生成されます。2 つのファイルをクライアント アプリケーションに追加し、生成されたクライアント クラスを使用してサービスを呼び出します。例えば:
C#
class Test
{
static void Main()
{
PhoneServiceClient client = new PhoneServiceClient();
// Use the 'client' variable to call operations on the service.
// Always close the client.
client.Close();
}
}