2009-07-23 32 views
0

WCFとWWFを使用して、いくつかのクライアントアプリケーションで使用する一連のサービスを構築するために私に何か新しいことを試みています。私は2つのライブラリ(ワークフローとサービス)とAPIという1つのWebアプリケーションを作成しています。 WebアプリケーションがAPI WebアプリケーションでWCF + WF + IIS 7仮想パスエラー

IIS 7内でホストされて、私は(ワークフローライブラリ内に存在する)とホストが設定されているサービスは、私のワークフローサービスの種類に設定されているInventoryService.svcファイルと呼ばれるファイルを追加しました「System.ServiceModel.Activiation.WorkflowServiceHostFactory」に設定します。

私は設定が正しいことをかなり確信しているが、ここにある:

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
    <behavior name="SynchronizeInventoryBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
     <serviceCredentials> 
     <windowsAuthentication 
      allowAnonymousLogons="false" 
      includeWindowsGroups="true" /> 
     </serviceCredentials> 
    </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="Workflows.SyncronizeInventory" 
      behaviorConfiguration="SynchronizeInventoryBehavior"> 
    <endpoint address="" 
       binding="wsHttpContextBinding" 
       contract="Services.IInventoryService"> 
    </endpoint> 
    <endpoint address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange"> 
    </endpoint> 
     </service> 
    </services> 
</system.serviceModel> 

私はのメッセージと例外で私たブラウザ結果のInventoryService.svcへの応用やブラウジングを開始で作るそれぞれの試み:

仮想パス '/IS%20API/InventoryService.svc'は許可されていない別のアプリケーションにマップされます。

私はかつてこの種の例外を見たことがありません。誰でも洞察力を貸すことができますか?スタックトレースは以下の通りです。ありがとう!

[ArgumentException: The virtual path '/IS%20API/InventoryService.svc' maps to another application, which is not allowed.] 
    System.Web.VirtualPath.FailIfNotWithinAppRoot() +8945786 
    System.Web.Compilation.BuildManager.ValidateVirtualPathInternal(VirtualPath virtualPath, Boolean allowCrossApp, Boolean codeFile) +229 
    System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +106 
    System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +101 
    System.Web.Compilation.BuildManager.GetVPathBuildResult(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile) +83 
    System.Web.Compilation.BuildManager.GetCompiledCustomString(String virtualPath) +27 
    System.ServiceModel.Activation.WorkflowServiceHostFactory.GetTypeFromString(String typeString, Uri[] baseAddresses) +248 
    System.ServiceModel.Activation.WorkflowServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +123 
    System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +516 
    System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +42 
    System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +479 

[ServiceActivationException: The service '/IS API/InventoryService.svc' cannot be activated due to an exception during compilation. The exception message is: The virtual path '/IS%20API/InventoryService.svc' maps to another application, which is not allowed..] 
    System.ServiceModel.AsyncResult.End(IAsyncResult result) +11586762 
    System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +194 
    System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +176 
    System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +278 
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 

.SVCファイルの内容

+0

興味深いことに、WebアプリケーションではなくWebサイトを作成し、自分のconfigファイルと.svcファイルをコピーすると、すべて正常に動作します。それは私がこの例外を取得するWebアプリケーション(これが私が必要とするもの)と同じです。 –

答えて

1

あなた.SVCファイルを投稿してください。パスが間違っている場所だと思う。

ウェブアプリケーションは「/ IS API」にルートされていますか?IISのアプリケーションとして設定されていますか?ワークフローサービスのアセンブリを含む '/ IS API/bin'フォルダはありますか?

関連する問題