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