4

私のソリューションでは、2 つのプロジェクトがあり、それらFooを と と呼びますBar。展開するFooと、ルート サイト (http://mycompany.com) になりBar、サブディレクトリ (http://mycompany.com/sub) になります。

ローカル マシンの IIS Express でローカルに作業する場合、別々に作業するため、両方のプロジェクトの web.config に複製する必要があります。たとえば、Rewrite ルールに「キャッシュ バスティング」用の HMTL5 ボイラープレート ルールの 1 つがあります。

<rewrite>
    <rules>
        <rule name="Cachebusting">
            <match url="^(.+)\.\d+(\.(js|css|png|jpg|gif)$)" />
              <action type="Rewrite" url="{R:1}{R:2}" />
        </rule>
    </rules>
</rewrite>

の web.config にそのままにしておくと、 でFoo作業するBarと適用されず、書き換えが行われないためエラーが発生します。そのため、両方のプロジェクトのセクションを web.config に複製しました。

Fooしかし、ソリューションを Azure に発行すると、web.configがルートにあるため、継承ルールが原因で競合が発生します。

これを管理する最善の方法は何ですか? このトピックを検索しようとしましたが、説明されているこの正確な問題が見つかりませんでした。

アップデート:

applicationhost.configのIIS Expressは次のとおりです。

        <site name="Bar" id="3">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="E:\Code\mycompany\Bar\Bar" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:65052:localhost" />
            </bindings>
        </site>
        <site name="Foo" id="4">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="E:\Code\mycompany\foo" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:50477:localhost" />
            </bindings>
        </site>

これらの変更を加えて、両方のアプリを同じサイトの一部にするように編集しようとしましたが、うまくいきませんでした。すべてを壊したようです:)

        <site name="Foo" id="3">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="E:\Code\mycompany\foo" />
            </application>
            <application path="/Sub" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="E:\Code\mycompany\Bar\Bar" />
            </application>              
            <bindings>
                <binding protocol="http" bindingInformation="*:65052:localhost" />
            </bindings>
        </site>
4

2 に答える 2

0

web.debug.configおよびを使用しweb.Release.configて、開発環境とリリース環境の違いを管理します。詳細については、この SO POSTまたはこの MSDN ブログに従ってください

于 2012-06-26T07:04:40.210 に答える
0

ルート サイト (http://mycompany.com) を IIS の Web サイトとして作成し、サブディレクトリを IIS の仮想ディレクトリとして作成します。

IIS は、ルート Web サイト (の web.config) で定義されたルールを仮想ディレクトリと共有します。

于 2012-06-26T04:49:35.307 に答える