0

xamlxベースのワークフローを実行するためにAppFabric1.1とIIS8.0を使用しています。静的なxamlxファイルをなくすために、Ron Jacobsの完璧なサンプルコードを使用して、それらをデータベースに保存し、xamlxコンテンツを提供しますVirtualPathProvider

http://blogs.msdn.com/b/rjacobs/archive/2011/06/15/how-to-load-wf4-workflow-services-from-a-database-with-iis-appfabric.aspx

これまでのところ、誰かが正しいuriをヒットすると、xamlxファイルが提供されます。

ただし、AppFabricダッシュボードでは、xamlxファイルがAppFabricに表示されなくなったため、ファイルを収集してサービスとして登録する機会がなくなりました。

目標は、ディレクトリリストを偽造し、dbからすべてのxamlxワークフロー名を読み取ることである必要があります。

VirtualPathProviderこのようにディレクトリベースのメソッドをオーバーライドしてを拡張することで、これを実行しようとしました

    public override bool DirectoryExists(string virtualDir)
    {
        return base.DirectoryExists(virtualDir);
    }

    public override VirtualDirectory GetDirectory(string virtualDir)
    {
        if (IsPathVirtual(virtualDir))
        {
            return new VirtualDirectoryDecorator(base.GetDirectory(virtualDir));
        }
        else
        {
            return Previous.GetDirectory(virtualDir);
        }

    }

しかし、これらのメソッドは、私が推測したようには呼び出されません。これは、URIに拡張子がなく、asp.netが呼び出されないためです。

この偽のディレクトリリストを作成するために感謝します!

ありがとう

4

1 に答える 1

1

ファイルを変更してweb.config、要求ごとに ASP.NET を呼び出す必要があることを IIS に指示する必要があります。これは<modules runAllManagedModulesForAllRequests="true" />、アプリケーション ルートの属性を使用して行われます。

一見したところ、VirtualPathProvider を内部で使用していて、IIS の自動生成されたディレクトリ コンテンツ リスト ページを非表示にしたいと思ったので、質問の名前を変更する必要があると思います。

于 2013-03-07T00:38:12.433 に答える