0

無料の Windows ストア ライセンスを使用して、基本的な DevForce Windows ストア アプリケーションを使用しています。

Web プロジェクトとして実行すると、クエリを正常に実行できました。

ただし、ServerConsole.exe を使用してホストすると、次の例外が発生します。

http://localhost:63191/EntityService.svc/winrtこのアプリケーションからの呼び出しを受け入れることができるリッスンしているエンドポイントはありません 。Visual Studio で実行している場合は、Web プロジェクト内のすべての IdeaBlade アセンブリ参照に対して CopyLocal=true が設定されていることを確認して、これらのアセンブリが bin フォルダーにコピーされるようにします。また、global.asax に DevForce VirtualPathProvider を登録するコードが含まれていること、または EntityService.svc ファイルと EntityServer.svc ファイルが存在することも確認してください。
サービスが実行されているかどうかを確認するには、インターネット ブラウザを開いて次の場所に移動します。http://localhost:63191/EntityService.svc. サービス ページにエラーが表示された場合は、サービスの問題を診断するのに役立ちます。サービスが実行されている場合は、エンドポイント バインディングがクライアントとサーバー間で一致していること、およびサーバーの ClientApplicationType が「All」またはこのクライアントに対して正しいことも確認してください。詳細については、サーバーのデバッグ ログ ファイルを確認してください。

ソリューションには、App1 (Windows ストア)、DomainModel (NET4.5)、および App1.Web (Web アプリケーション) の 3 つのプロジェクトがあります。ServiceConsole.exe が DomainModel の出力ディレクトリにコピーされました。

ServerConsole は次のことを正しく報告します。

Trying programmatic configuration of EntityService using
ideablade.configuration  section EntityService listening on
http://localhost:63191/EntityService/winrt EntityService listening on
http://localhost:63191/EntityService/wp Press <Enter> to exit server.

へのナビゲート

`http://localhost:63191/EntityService.svc` shows `404 Not Found`.

`http://localhost:63191/EntityService` shows the standard Web Service info page.
4

1 に答える 1

1

これは、DevForce の「非効率」によるものです。モバイル クライアントの場合、既定では、EntityService が IIS によってホストされ、WCF が必要とする .svc 拡張子を自動的に追加すると想定されます。

この動作を回避するには、DevForce ServiceProxyEvents クラスのカスタム実装を追加して、拡張機能を取り除き、URI を置き換えることができます。

class ClientProxy : IdeaBlade.EntityModel.ServiceProxyEvents
{

    public override void OnEndpointCreated(System.ServiceModel.Description.ServiceEndpoint endpoint)
    {
        var olduri = endpoint.Address.Uri;
        var newuri = new Uri(olduri.AbsoluteUri.Replace(".svc", string.Empty));
        endpoint.Address = new System.ServiceModel.EndpointAddress(newuri);
        base.OnEndpointCreated(endpoint);
    }
}

DevForce によって「調査」されるクライアント側アセンブリにクラスを配置します。

于 2014-08-26T16:47:15.643 に答える