ブログ主の運営するWebサイトは、ASP.NETすなわちWindowsベースである。来るWindows Server 2003のサポート終了に伴い、先月にWindows Server 2012プランへの切り替えを行った(関連投稿:Windows Server 2003のサポートが終了目前、レンタルサーバを切り替える)。しかし、実際にWebサイトの移行を行おうとすると、意外なところに躓くものだ。
どうせならASP.NET MVCを基本としたレスポンシブルなサイトにしようと、まずはASP.NET MVCが使えるかどうか試してみた(スペック上は、一応使えるとある)。Visual Studio 2013でテンプレートからサイトを作成し、特に何も変えずにそのままサーバに配置。動かない。セキュリティ違反になるのだ。MVCがダメならWebフォームサイトではと試したが、やっぱりセキュリティ違反だ。
レンタルサーバ業者のサポートの人と何回かやりとりした結果、根本的な原因は、共用サーバの信頼レベル(トラストレベル、TrustLevel)が「Medium」(中)になっているからだと判明した(ローカルでは「Full」(フル))。このため、いくつかの機能が制限されており、それに引っかかるとセキュリティ違反で落ちてしまう。
これはポリシー上変更できないそうで、web.configでのオーバライドも禁止されている。ということは、セキュリティ違反にならないようにコードを変更してやらなければならないが、どうやら参照先のアセンブリ(DLL)がすでにそのようになっている感じで、これだと手も足も出ない。
仕方ないので、現在動いている、古いテンプレートベースのWebサイトをそのままアップロードし、それだと動くことを確認した。古いテンプレートを使ってやればいいようだが、Visual Studio 2010を今さら入れる気もないし、そもそも入れられない。なので、レシポンシブルデザインは諦めて、今のWebサイトをちまちまメンテナンスしていくしかないようだ。
共用サーバを契約するときには、どのような制約があるか確認しておいたほうがいいね。どうしようもない場合には、割高だけどサーバに自由の利くVPSなどのプランを選ぶ必要も出てくるね。
コメント