ঠিক আছে তাই আমি এটিকে পেলাম - অফ-সুযোগে আমি এটিকে প্রশ্নের সম্পাদনা হিসাবে পোস্ট করছি না যদিও যদিও এটি সঠিক পথে রয়েছে বলে মনে হচ্ছে, আমি যা কাজ করছি তার থেকে আরও ভাল উপায় হতে পারে on । চিত্র আমি গণতন্ত্র সিদ্ধান্ত নিতে দিন!
এই লিঙ্কটি ব্যবহার করে আমি এক্সএমএল ফাইলের ফর্ম্যাটটি বের করতে সক্ষম হয়েছি যা setParamFile
এমএসডিপ্ল্লোয়ের জন্য স্যুইচ ব্যবহার করা উচিত। আমিও অতীতে, ওয়েব ডিপ্লোমেন্ট সরঞ্জাম ইনস্টল করার পরে আইআইএসের মধ্যে এম্বেডড জিইআইআই ব্যবহার করে ডিক্লেয়ারামপামফায়াল এক্সএমএলের ফর্ম্যাটটি বের করেছিলাম।
সুতরাং, 'সাইটএ' নামে একটি সাইট দেওয়া হয়েছে, অ্যাপ্লিকেশন হোস্ট.কনফিগ ফাইলটিতে দুটি বাঁধাই প্রবেশের সাহায্যে:
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
<binding protocol="https" bindingInformation="*:443:" />
</bindings>
(যার অর্থ, বিশেষত - 80 পোর্টের কোনও আইপি ঠিকানা এবং 443 পোর্টের কোনও আইপি ঠিকানা)
প্রকৃত সার্টিটি ব্যবহার করা হচ্ছে অ্যাপ্লিকেশন হোস্ট.কনফিগে নয়, পরিবর্তে Http.sys এর কনফিগারেশনে ( এই নিবন্ধ অনুযায়ী ) is যখন এমএসডিপ্লয় সাইটটির জন্য একটি প্যাকেজ প্রস্তুত করে, এটি সেই তথ্য এম্বেড করবে - যা আমি শেষ হিসাবে উল্লেখ করেছি বলে আশীর্বাদ হতে পারে না।
প্রথম পদক্ষেপটি এমন একটি প্যারামিটারের এক্সএমএল ফাইল ঘোষণা করা হয় যা আমরা লক্ষ্য লাইভ সার্ভারগুলির জন্য একটি একক প্যাকেজ প্যারামিটারাইজ করতে ব্যবহার করব:
<parameters>
<!-- declare parameter for Http Binding -->
<parameter name="SiteA-http" description="SiteA Http Binding">
<parameterEntry kind="DestinationBinding" scope="SiteA" match=":80:" />
</parameter>
<!-- declare parameter for Https Binding -->
<parameter name="SiteA-https" description="SiteA Https Binding">
<parameterEntry kind="DestinationBinding" scope="SiteA" match=":443:" />
</parameter>
</parameters>
দুটি অভ্যন্তরীণ প্যারামিটার এন্ট্রিগুলিতে 'ম্যাচ =' বৈশিষ্ট্য মানগুলি নোট করুন। এটি নিশ্চিত করে যে সঠিক বাঁধাই প্রতিস্থাপন করা হয়েছে। এটি একটি রেইজেক্স ( এই টেকনেট নিবন্ধে বর্ণিত হিসাবে ) বিদ্যমান বন্ডিং মানগুলিকে নির্বাচন করে যা প্যারামিটার মান দিয়ে পরিবর্তন করতে হবে যা একটি মুহুর্তের মধ্যে পাস হবে।
আমরা এটি হিসাবে সংরক্ষণ declareparameters.xml
।
এটি স্থানে রেখে আমরা এখন আমাদের স্টেজিং বাক্স থেকে একটি প্যারামিটারাইজড প্যাকেজ তৈরি করতে পারি, যা থেকে আমরা এই কমান্ড লাইনটি ব্যবহার করতে পারি (এটি আমাদের সাইটএ উপস্থিত রয়েছে এমন একটি সম্পূর্ণ আইআইএস 'চিত্রের জন্য):
msdeploy -verb:sync
-source:WebServer,computerName=localhost
-dest:package="parameterised.zip"
-declareParamFile:declareparameters.xml
যদি ওয়েব সাইটটি অন্য কোনও ওয়েব সার্ভারে থাকে তবে সেই ওয়েব সার্ভারের নামের সাথে 'লোকালহোস্ট' প্রতিস্থাপন করুন। ওয়েব ডিপ্লয় এজেন্ট পরিষেবাটি কাজ করার জন্য টার্গেট মেশিনে চলতে হবে।
এখন, আমরা একটি পরামিতি XML ফাইল যে আসলে হবে ঘোষণা প্রদান একটি লাইভ সার্ভারে কোনও স্থাপনার জন্য পরামিতি মান:
<parameters>
<setParameter name="SiteA-http" value="[fixedIPAddress]:80:"/>
<setParameter name="SiteA-https" value="[fixedIPAddress]:443:"/>
</parameters>
এবং আমরা যে হিসাবে সংরক্ষণ
[targetServerName]parameters.xml
(আমার ক্ষেত্রে আমার দুটি টার্গেট সার্ভার রয়েছে, তাই প্রত্যেকে আলাদা আলাদা ফাইলের নামের সাথে নিজস্ব প্যারামিটারগুলি এক্সএমএল এবং প্রতিটিটিতে কিছুটা আলাদা আইপি পায়)।
অবশেষে, আমরা এই কমান্ড লাইনের মাধ্যমে লক্ষ্য সার্ভারগুলিতে পরামিতি স্থাপন করতে পারি:
msdeploy -verb:sync
-source:package="parameterised.zip"
-dest:WebServer,computerName="[targetServerName]"
-setParamFile=[targetServerName]parameters.xml
সুতরাং এখন আমরা এইচটিটিপি বা এইচটিপিএস বাইন্ডিং এর আইপিগুলি পরিবর্তন করতে পারি এবং যদি মূলগুলি যথেষ্ট আলাদা হয় তবে আমরা সেই সাইটের জন্য প্রয়োজনীয় যে কোনও সংখ্যক পৃথক বাইন্ডিংকে প্যারামিটারাইস করতে পারি।
এটি এখনও পর্যন্ত একটি ত্রুটি রয়েছে - সুতরাং যে কোনও বিকল্প উত্তর প্রশংসা করুন - এসএসএল কনফিগারেশন উত্স মেশিন থেকে প্যাকেজে অনুলিপি করা হয়েছে - যার অর্থ লাইভ সাইটটিতে এসএসএল কনফিগারেশন মোতায়েনের ক্ষেত্রে সঠিক হতে পারে, উভয় স্টেজিং মেশিন এবং লাইভ সার্ভারকে অবশ্যই একই এসএসএল শংসাপত্রগুলি ব্যবহার করা উচিত।
মজাদার বাক্সটি স্যানিটি পরীক্ষার জন্য স্ব-স্বাক্ষরিত বা অভ্যন্তরীণ শংসাপত্র ব্যবহার করতে পারে এবং তারপরে এক্সএমএল ফাইলগুলি থেকে প্যারামিটারাইজড - সত্যিকারের স্থাপনার উপর সত্যিকারের এসএসএল সার্টিটি প্রয়োগ করা যেতে পারে তা দুর্দান্ত What