次の方法で共有


.svc ファイルと共にラップされた事前コンパイル済みの WCF ワークフロー サービスがホストされている場合、サービスのアクティブ化が失敗する可能性があります

この記事は、.svc ファイルと共にラップされた事前コンパイル済みの Windows Communication Foundation (WCF) ワークフロー サービスがホストされている場合に、サービスのアクティブ化が失敗する可能性がある問題を解決するのに役立ちます。

元の製品バージョン: Windows Workflow Foundation 4.0
元の KB 番号: 2286155

現象

.svc ファイルと共にラップされた事前コンパイル済みの WCF ワークフロー サービスがホストされている場合、サービスのアクティブ化が例外エラーで失敗する可能性があります。

原因

この問題は、サービス パスに英語以外の文字が含まれている場合に発生する可能性があります。 たとえば、次のサービス パスによってこの問題が発生する可能性があります。
application_name + directory_name + file_name

回避策

この問題を回避するには、構成ベースのアクティブ化を使用します。

たとえば、アプリケーションと、次のようにService.svc ファイルにラップされたCalculatorServiceなどの事前コンパイル済みの WCF ワークフロー サービスがあるとします。

<% @ServiceHost
language=c#
Factory="System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory,Service="CalculatorService"%>

CalculatorServiceがホストされている場合、サービスのアクティブ化は例外エラーで失敗する可能性があります。

この問題を回避するには、次の例のような部分をアプリケーションに追加して、ルート Web.config ファイルに追加します。

<System.serviceModel>
    <serviceHostingEnvironment>
        <serviceActivations>
            <add relativeAddress="~/service.svc" service="CalculatorService"
              factory="System.ServiceModel.Activities.Activation.WorkflowServiceHostFactory"/>
        </serviceActivations>
    </serviceHostingEnvironment>
</system.serviceModel>

詳細