curluneの日記

日々試行錯誤。雑多に、気ままに、てきとーに。HoloLens/Oculus Rift,Touchと戯れる日々。

Azure Web Serviceで拡張機能のComposerを使うとvenderを含むurlへアクセスできなくなる問題を回避する ひとりぷちアドベントカレンダー2017 04日目

Azure Web Serviceにて一部のurlへできないと思ったら、拡張機能のComporserがブロックしていたというお話。 原因となるルールを削除することでアクセスできるようになります。

#タイトル長過ぎてひどい。

拡張機能のComporserを使うと起きる事

urlの中にvenderが含まれると、それ以下のファイルへアクセスできなく(403)なります。 たとえば、次のようなアドレスです。

これ、しばらくは原因が分からず地味に悩みました。拡張機能がこんなありがた迷惑なことをしているとは思わなかった。

対処方法

公開ディレクトリのweb.configに次の項目を追加するとvender以下へアクセスできるようになります。 やっている事は簡単、原因であるvender以下をブロックするルールを名前を指定して削除しています。

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <remove name="RequestBlockingRule1" />
      </rule>
    </rewrite>
  </system.webServer>
</configuration>

普通webrootを変更して、comporservenderディレクトリはwebrootの外になると思います。 なので、ルールを削除するだけで一件落着です。

拡張機能の中身

拡張機能を追加後、一覧の中から選ぶと詳細を確認できます。 f:id:curlune:20171204050353p:plain

この記述によると本体はこちらの模様。 github.com

そして原因は次の部分。

ComposerExtension/applicationHost.xdt at df2eee9426f89f7d193a7b4254cacae5ff30db39 · SyntaxC4-MSFT/ComposerExtension · GitHub

一見問題ないように見えるけれど、urlの途中にあるvenderにもマッチするようなのです......。

おわりに

こういう問題って分かってしまえば簡単なのだけれど、原因に気づくまでが大変です。

トラップに嵌る人が減りますよーに。