Windows Communication Foundation チュートリアルの開始に関するトラブルシューティングTroubleshoot the Get started with Windows Communication Foundation tutorials

この記事では、チュートリアルの手順を実行する際に直面する可能性がある最も一般的な問題とエラーの解決策を示します。Windows Communication Foundation アプリケーションの概要」をご覧ください。This article provides solutions for the most common problems and errors you might face when you follow the steps in the Tutorial: Get started with Windows Communication Foundation applications.

一般的な問題Common problems

ハードドライブにプロジェクトファイルが見つかりません。I can't find the project files on my hard drive.

Visual Studio では、プロジェクトファイルは \C:\Users><のユーザー名 \ ソースに保存されます。Visual Studio saves project files in C:\Users\<user name>\source\repos.

*Svcutil.exeによって生成されたapp.config*ファイルが見つかりません。I can't find the App.config file generated by Svcutil.exe.

Visual Studio では、 [既存項目の追加] ウィンドウには、既定で次の拡張子を持つファイルのみが表示されます。In Visual Studio, the Add Existing Item window only displays files with the following extensions by default:

  • .cs.cs
  • .resx.resx
  • . 設定.settings
  • .xsd.xsd
  • .wsdl.wsdl

すべてのファイルの種類を表示するには、 [既存項目の追加] ウィンドウの右下隅にあるドロップダウンリストで [すべてのファイル (*.*) ] を選択します。To display all file types, select All Files (*.*) in the drop-down list in the lower-right corner of the Add Existing Item window.

一般的なエラーCommon errors

サービスアプリケーションをコンパイルするCompile the service application

エラー BC30420 ' Sub Main ' が ' Getting ' に見つかりませんでした。Error BC30420 'Sub Main' was not found in 'GettingStartedHost.Module1'.

Visual Basic アプリケーションのエントリポイントが正しくありません。The entry point is incorrect for the Visual Basic application. 次のように変更します。Make the following change:

  1. [ソリューションエクスプローラー] ウィンドウで、[ Getting] ホストフォルダーを選択し、ショートカットメニューの [プロパティ] をクリックします。In the Solution Explorer window, select the GettingStartedHost folder, and then select Properties from the shortcut menu. a.a. [Gettingstartup ホスト] ウィンドウで、 [スタートアップオブジェクト] の一覧から [Service. プログラム] (または特定のアプリケーションのエントリポイント) を選択します。In the GettingStartedHost window, for Startup object, select Service.Program (or the entry point for your particular application) from the list. b.b. メインメニューから、[ファイル > ] [すべてを保存] を選択します。From the main menu, select File > Save All.

サービスアプリケーションを実行するRun the service application

Http は URL ' http://+: 8000/gettingstarted/計算 atorservice ' を登録できませんでした。プロセスにこの名前空間へのアクセス権がありません。HTTP could not register URL 'http://+:8000/GettingStarted/CalculatorService'. Your process does not have access rights to this namespace.

適切なアクセスを行うには、管理者特権で Windows Communication Foundation (WCF) サービスをホストするプロセスを開始します。For proper access, start the process hosting the Windows Communication Foundation (WCF) service with administrative privileges:

  • Visual Studio の場合: [スタート] メニューで Visual Studio プログラムを選択し、ショートカットメニューの [管理者として実行 ] を > クリックします。For Visual Studio: Select the Visual Studio program in the Start menu, and then select More > Run as administrator from the shortcut menu.
  • コンソールウィンドウの場合: [スタート] メニューの [コマンドプロンプト] を選択し、ショートカットメニューから [管理者として実行 ] を選択 > します。For a console window: Select Command Prompt in the Start menu, and then select More > Run As administrator from the shortcut menu.
  • エクスプローラーの場合:実行可能ファイルを選択し、ショートカットメニューから [管理者として実行] を選択します。For Windows Explorer: Select the executable, and then select Run as administrator from the shortcut menu.

クライアントアプリケーションをコンパイルするCompile the client application

' 電卓 atorclient ' に '<method name > ' の定義が含まれていません。また、' 電卓 atorclient ' 型の最初の引数を受け付ける拡張メソッド '<method name > ' が見つかりませんでした。 using ディレクティブが指定されていないか、アセンブリ参照)'CalculatorClient', does not contain a definition for '<method name>' and no extension method '<method name>' accepting a first argument of type 'CalculatorClient' could be found (are you missing a using directive or an assembly reference?)

ServiceOperationAttribute属性でマークしたメソッドだけがパブリックに公開されます。Only those methods that you mark with the ServiceOperationAttribute attribute are publically exposed. ICalculatorインターフェイスのメソッドからServiceOperationAttribute属性を省略すると、コンパイル中にこのエラーメッセージが表示されます。If you omit the ServiceOperationAttribute attribute from a method in the ICalculator interface, you receive this error message during compilation.

型または名前空間の名前 ' 電卓 Atorclient ' が見つかりませんでした。 using ディレクティブまたはアセンブリ参照が指定されていないことを確認してください。The type or namespace name 'CalculatorClient' could not be found (are you missing a using directive or an assembly reference?)

GeneratedProxy.cs (または生成された .vb) ファイルをsvcutil.exeツールで生成したときに、クライアントプロジェクトに追加しない場合、このエラーが発生します。You receive this error if you don't add the generatedProxy.cs (or generatedProxy.vb) file to your client project when you generated them with the Svcutil.exe tool.

クライアントアプリケーションを実行するRun the client application

ハンドルされない例外:EndpointNotFoundException:' Http://localhost: 8000/gettingstarted/電卓 atorservice ' に接続できませんでした。TCP エラーコード 10061:ターゲットコンピューターがアクティブに拒否したため、接続できませんでした。Unhandled Exception: System.ServiceModel.EndpointNotFoundException: Could not connect to 'http://localhost:8000/GettingStarted/CalculatorService'. TCP error code 10061: No connection could be made because the target machine actively refused it.

このエラーは、最初にサービスを開始せずにクライアントアプリケーションを実行した場合に発生します。This error occurs if you run the client application without first starting the service. 最初に、ホストアプリケーションを実行してサービスを開始し、クライアントアプリケーションを実行します。First, run the host application to start the service, and then run the client application.

Svcutil.exe ツールを使用するUse the Svcutil.exe tool

' Svcutil ' は、内部コマンド、外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。'Svcutil' is not recognized as an internal or external command, operable program, or batch file.

Svcutil.exeはシステムパスになければなりません。Svcutil.exe must be in the system path. 最も簡単な解決策は、Visual Studio コマンドプロンプトを使用することです。The easiest solution is to use the Visual Studio command prompt. [スタート] メニューから [ Visual Studio <バージョン > ディレクトリ] を選択し、[ VS <バージョン > ] で [開発者コマンドプロンプト] を選択します。From the Start menu, select the Visual Studio <version> directory, then select Developer Command Prompt for VS <version>. このコマンドプロンプトでは、Visual Studio の一部として出荷されたすべてのツールの正しい場所にシステムパスを設定します。This command prompt sets the system path to the correct locations for all tools shipped as part of Visual Studio.

サービスとクライアントアプリケーションを実行するRun the service and client applications

System.servicemodel.security.securitynegotiationexception の場合:ターゲット ' http:///localhost: 8000/gettingstarted/計算 atorservice ' に対する ' http:/localhost: 8000/gettingstarted/計算 atorservice ' による SOAP セキュリティネゴシエーションが失敗しましたSystem.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation with 'http://localhost:8000/GettingStarted/CalculatorService' for target 'http://localhost:8000/GettingStarted/CalculatorService' failed

このエラーは、ネットワークに接続されていないドメインに参加しているコンピューターで発生します。This error occurs on a domain-joined computer that doesn't have network connectivity. コンピューターをネットワークに接続するか、サービスとクライアントの両方のセキュリティをオフにします。Connect your computer to the network or turn off security for both the service and the client.

セキュリティをオフにするには:To turn off security:

  • サービスの場合は、を作成WSHttpBindingするコードを次のコードに置き換えます。For the service, replace the code that creates the WSHttpBinding with the following code:

    // Step 3: Add a service endpoint.
    selfhost.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(SecurityMode.None), "CalculatorService");  
    
  • クライアントの構成ファイルで、次のように、 <binding > 要素の下の <セキュリティ > 要素を更新します。For the client, in the configuration file, update the <security> element under the <binding> element as follows:

    <binding name="WSHttpBinding_ICalculator" security mode="None" />
    

関連項目See also

WCF アプリケーションを使ってみるGet started with WCF applications
WCF トラブルシューティングクイックスタートWCF troubleshooting quickstart
セットアップに関する問題のトラブルシューティングTroubleshooting setup issues