আমাদের কাছে একটি আইআইএস সার্ভার রয়েছে যা কয়েকশো পৃথক ওয়েব অ্যাপ্লিকেশন হোস্ট করে এবং এই অ্যাপ্লিকেশনগুলিকে হোস্ট করে এমন শারীরিক ডাটাবেস সার্ভারটি একটি সংক্ষিপ্ত সময়ের জন্য রক্ষণাবেক্ষণের জন্য অফলাইনে নেওয়া হবে (আমরা আশা করি এটি 15 মিনিটেরও কম সময় নিবে)।
সেই সময়কালে, আমরা যে কোনও ওয়েবসাইটের জন্য আসা সমস্ত ট্র্যাফিককে "আমরা বর্তমানে রক্ষণাবেক্ষণের মধ্য দিয়ে যাচ্ছি" পৃষ্ঠাতে পুনর্নির্দেশ করতে চাই।
আমি উপলব্ধি করেছি যে আমি প্রতিটি ওয়েব অ্যাপ্লিকেশনে গিয়ে এবং আইআইএস পুনর্লিখনের নিয়মটি সেট করে যা ব্যবহারকারীকে সেই অ্যাপ্লিকেশনটিতে সমস্ত অনুরোধের জন্য অন্য পৃষ্ঠায় প্রেরণ করে। তবে ডাটাবেস রক্ষণাবেক্ষণের চেয়ে এটি করতে আমাদের আরও বেশি সময় লাগবে!
আমি তিনটি জিনিস চেষ্টা করেছি, যার কোনটিই কাজ করে নি:
গ্লোবাল আইআইএস পুনর্লিখন বিধি
আমি সমস্ত সাইটগুলিতে একটি নিয়ম প্রয়োগ করার একটি সহজ উপায় সন্ধান করছি , একের মধ্যে হুড়োহুড়ি হয়ে পড়ে - এবং তারপরে সেই নিয়মটিকে একটি সমান ব্যথাহীন পদক্ষেপে "পূর্বাবস্থাপন" করতে সক্ষম হতে হবে। এখনও অবধি আমার কোন চেষ্টা কাজ করে নি। আমি আমার বিশ্বব্যাপী ওয়েবকনফাইগে ডাব্লু: \ উইন্ডোজ \ মাইক্রোসফট.নেট \ ফ্রেমওয়ার্ক 64 \ v4.0.30319 \ কনফিগারেশন \ ওয়েবকনফিগ এ এই পুনর্লিখনের নিয়মটি রাখার চেষ্টা করেছি:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect all requests" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
</conditions>
<action type="Redirect" url="http://www.somedomain.com/maintenance" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
এটি কাজ করে না। আমরা আইআইএসে .NET 4.0 64 বিট চালাচ্ছি, তবে "কেবলমাত্র" আমি একই জিনিসটি 32 বিট এবং 2.0 গ্লোবাল ওয়েবকনফিগ ফাইলগুলিতে রেখেছি, এবং এখনও কোনও পরিবর্তন নেই।
App_Offline.htm "বিশেষ ফাইল"
আমি অন্য একটি পরামর্শ যা দেখেছি তা হ'ল অ্যাপ_অফ্লাইন.এইচটিএম "বিশেষ" ফাইল , তবে আমরা আমাদের একই অ্যাপ্লিকেশনটির অ্যাপ্লিকেশনটিতে এই ফাইলটি রক্ষণাবেক্ষণের তুলনায় আরও বেশি সময় নিতে চাইলে একই সমস্যা ফিরে পেয়েছি।
আইআইএসে "আমরা অফলাইনে আছি" সাইট
আমাদের সমস্ত সাইটগুলি একটি আইপি দিয়ে আইআইএসে সেটআপ করা আছে। এটি এসএনএ ছাড়াই আমাদের পক্ষে কাজ করে কারণ আমাদের সমস্ত অ্যাপ্লিকেশন একটি একক এসএসএল শংসাপত্র ভাগ করে দেয় (এটি একটি ইউসিসি)। আমার কাছে ঘটে যাওয়া একটি জিনিসটি হ'ল সম্ভবত আমি আইআইএসে একটি সাইট সেটআপ করতে পারি যা আমরা যে আইপি ব্যবহার করছি তার সাথে সমস্ত ট্র্যাফিকের সাথে মেলে এবং হোস্টের শিরোনামের মানটি নির্দিষ্ট করে না । আশা ছিল যে আমি এটিকে একটি উচ্চতর "অগ্রাধিকার" দিতে পারব এবং এটি শুরু হওয়ার সাথে সাথে সমস্ত আইটেমির সাথে ট্র্যাফিকের সাথে মেলে, অন্য কোনও সাইটের মিলের সুযোগ হওয়ার আগেই। অনুরোধ URL নির্বিশেষে, সমস্ত অনুরোধের জন্য একই পৃষ্ঠাটি পরিবেশন করতে আমি সেই সাইটটি সেট আপ করতে পারি।
রক্ষণাবেক্ষণের সময় সেই সাইটটি শুরু করুন এবং শেষ হয়ে গেলে এটি বন্ধ করুন।
তবে, আমি এই কাজটিও করতে পারিনি, কারণ আইআইএস আরও নির্দিষ্ট সাইটের সাথে কোনও নির্দিষ্ট সাইটের সাথে এইচটিটিপি অনুরোধের সাথে মেলে বলে মনে হচ্ছে। সুতরাং, এই "ব্যবহারকারীদের আমরা অফলাইনে বলুন" সাইটের জন্য হোস্ট-শিরোলেখের মান বাদ দিয়ে, অনুরোধটিতে অন্য কোনও সাইটের সাথে মিলে যাওয়া হোস্ট-শিরোনামের মান না থাকলে এটি মিলবে না। যা আমাদের প্রতিটি ওয়েব অ্যাপ্লিকেশনটিতে ম্যানুয়ালি যেতে এবং এটি অফলাইনে নেওয়ার জন্য কোনও ক্রিয়া সম্পাদন করে এবং একই সাথে আমাদের রক্ষণাবেক্ষণের কাজ শেষ হলে অনলাইনে ফিরিয়ে দেওয়া একই সমস্যাটিতে ফিরে আসে
এটি সম্পাদন করার কোনও সহজ উপায় আছে? দেখে মনে হবে নিশ্চয়ই আমরা প্রথম এই সমস্যাটির মুখোমুখি নই।
-Josh