30代後半で転職したSEのブログ

転職の経験談、IT技術情報など紹介していきます。

classic asp on webapps

VBSで記述されたいわゆるclassic aspをAzureに移行しようと考えています。
直近問題になっているのはVBS内で親ディレクトリにあるVBSをIncludeして失敗するパターンです。<%@ LANGUAGE=VBScript %>

最近のIISは親ディレクトリの参照をデフォルトでは禁止しており、
オンプレのIISであればapplicationHost.configを書き換えて、
ディレクトリの参照を許可設定する必要があります。

Azure上のWebAppsの場合はapplicationHost.configを追加してもなかなか反映されず、
いろいろ調べているうちに下記のページに行き着きました。

Xdt transform samples · projectkudu/kudu Wiki · GitHub

難しいことはよくわかりませんが、applicationHost.configの代わりにapplicationHost.xdtというファイルを作って、
D:\Home\site配下に設置し、WebAppsを再起動すれば親ディレクトリの参照も可能になりました。

applicationHost.xdtの中身には下記を追記しました。

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <asp xdt:Transform="SetAttributes(enableParentPaths)" enableParentPaths="true" />
  </system.webServer>
</configuration>

ファイルの配置にはKuduを使いました。

これでclassic aspの移行が捗りそうです。