উন্নয়ন এবং উত্পাদন পরিবেশে বিভিন্ন ওয়েবকনফিগ ব্যবহার করা


194

উন্নয়ন বা উত্পাদন পরিবেশে এটি নির্ভর করে আমার এএসপি.এনইটি অ্যাপ্লিকেশনটিতে আমার বিভিন্ন ডাটাবেস সংযোগ স্ট্রিং এবং এসএমটিপি সার্ভার ঠিকানা ব্যবহার করতে হবে।

অ্যাপ্লিকেশনটি WebConfigrationManager.appSettings বৈশিষ্ট্যের মাধ্যমে Web.config ফাইল থেকে সেটিংস পড়ছে ।

আমি এফটিপি-র মাধ্যমে প্রোডাকশন সার্ভারে অ্যাপ্লিকেশন মোতায়েন করতে বিল্ড / পাবলিশ কমান্ডটি ব্যবহার করি এবং তারপরে ম্যানুয়ালি রিমোট ওয়েবকনফিগটিকে সঠিক একের সাথে প্রতিস্থাপন করি।

এটি কি কোনওভাবে স্থাপনার প্রক্রিয়া সহজতর করা সম্ভব? ধন্যবাদ!

উত্তর:


159

ভিজ্যুয়াল স্টুডিও 2010 এবং তারপরে, বিল্ড কনফিগারেশনের উপর নির্ভর করে আপনার কাছে এখন আপনার ওয়েবকনফাইগের একটি রূপান্তর প্রয়োগ করার ক্ষমতা রয়েছে।

ওয়েবকনফিগ তৈরি করার সময় আপনি সমাধান এক্সপ্লোরারটিতে ফাইলটি প্রসারিত করতে পারেন এবং আপনি দুটি ফাইল দেখতে পাবেন:

  • Web.Debug.Config
  • Web.Release.Config

এগুলিতে রূপান্তর কোড রয়েছে যা ব্যবহার করা যেতে পারে

  • সংযোগ স্ট্রিং পরিবর্তন করুন
  • ডিবাগিং ট্রেস এবং সেটিংস সরান
  • ত্রুটি পৃষ্ঠাগুলি নিবন্ধ করুন

আরও তথ্যের জন্য এমএসডিএন-তে ওয়েব অ্যাপ্লিকেশন প্রকল্প স্থাপনার জন্য ওয়েবকনফিগ ট্রান্সফর্মেশন সিনট্যাক্স দেখুন ।

একইভাবে কোনও নন ওয়েব অ্যাপ্লিকেশন app.configফাইলে একই ধরণের রূপান্তর প্রয়োগ করার জন্য, অফিশিয়ালি অসমর্থিত হলেও এটিও সম্ভব । মিসবিল্ডে কোনও নতুন টাস্ক যুক্ত করতে কীভাবে আপনার প্রকল্প ফাইলটি পরিবর্তন করতে হবে সে সম্পর্কিত ফিল বোলডুক ব্লগটি দেখুন ।

এটি ভিজ্যুয়াল স্টুডিও ব্যবহারকারীভয়েসে একটি দীর্ঘ প্রতিরোধের অনুরোধ

যে কোনও কনফিগার ফাইলের জন্য রূপান্তর তৈরির যত্ন নেওয়ার জন্য ভিজুয়াল স্টুডিও ২০১০ এবং তারপরের একটি বর্ধিত " স্লোচিটাহা " উপলব্ধ। ভিজ্যুয়াল স্টুডিও 2017.3 দিয়ে শুরু করে, স্লোচিটাকে আইডিইতে সংহত করা হয়েছে এবং কোড বেসটি মাইক্রোসফ্ট পরিচালনা করছে। এই নতুন সংস্করণটি JSON রূপান্তরকে সমর্থন করে।


7
মনে রাখবেন যে এটি পুরানো ওয়েব সাইট প্রকল্পগুলির জন্য কাজ করে না । শুধুমাত্র ওয়েব অ্যাপ্লিকেশনগুলির জন্য । ফিল বোলডুকের কাজগুলি ওয়েবসাইটগুলির জন্য কাজ করে কিনা তা দেখার চেষ্টা করি নি, তবে আমার সন্দেহ হয় যে এটি হবে না, কারণ তাদের কাছে প্রকল্পের ফাইল নেই।
মো।

13
এছাড়াও মনে রাখবেন যে ওয়েব কন্টফিগ্রে কেবল প্রকাশের জন্য কাজকে রূপান্তরিত করে, তারা কেবল এফ 5 তৈরি / চালানো হলে সেগুলি কাজ করে না: (((
অ্যালেক্স

7
যদি আপনার ওয়েবকনফাইগটিতে একটি Web.Debug.Configএবং না থাকে তবে আপনার Web.Release.Configডান ক্লিক করে Web.Configক্লিক করতে হবে Add Config Transforms
ডগ এস

1
@ অ্যালেক্স: আমরা কীভাবে এটি সাধারণ বিল্ড / এফ 5 এর জন্য ব্যবহার করতে পারি?
পাংটার


83

<appSettings>Web.config ট্যাগে একটি ফাইল গুণ যা কী / মান এটা নিজস্ব সেট দিয়ে একটি বহিস্থিত কনফিগ লোড করা হবে সমর্থন করে। এগুলি আপনার আপনার ওয়েবকনফাইগের যে কোনও সেটিংস ওভাররাইড করবে বা সেগুলিতে যুক্ত হবে।

আমরা সাইটটি যে পরিবেশে ইনস্টল করা হচ্ছে তার পরিবেশের সাথে মেলে এমন একটি ফাইল অ্যাট্রিবিউটের সাথে ইনস্টল করার সময় আমাদের ওয়েবকনফিগটিকে সংশোধন করে আমরা এর সুবিধা নিই। আমরা আমাদের ইনস্টলারটি স্যুইচ করে এটি করি।

যেমন;

<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">

<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">

<appSettings file=".\EnvironmentSpecificConfigurations\production.config">

বিঃদ্রঃ:

  • অ্যাট্রিবিউট দ্বারা নির্দিষ্ট করা .কনফিগের পরিবর্তনগুলি asp.net কর্মী প্রক্রিয়া পুনরায় আরম্ভ করতে ট্রিগার করবে না

2
এটি একটি দুর্দান্ত উত্তর, বিশেষত যখন আপনার কাছে প্রচুর পরিমাণে পরিবেশ থাকে এবং কিছু পরিবেশের জন্য কিছু সেটিংসের পাসওয়ার্ড থাকে এবং অনুরূপ যে আপনি উত্স নিয়ন্ত্রণে ট্র্যাক করতে চান না।
ফিল

1
ফাইলের পথ পরিবর্তন করার কোনও গতিশীল উপায় আছে কি? আপনি কোন সার্ভারের উপর ভিত্তি করে? এটি কেবলমাত্র একটি পার্শ্ব নোট যা কোনও ওয়েব অ্যাপ্লিকেশন নয়, একটি পুরানো ওয়েবসাইট প্রকল্পে কাজ করছে। তাই আপনাকে ধন্যবাদ!
দৃষ্টিকোণ

2
এমন একটি অ্যাট্রিবিউট রয়েছে restartOnExternalChangesযা সেই ফাইলগুলিকে এমন আচরণ করবে যেমন তারা ওয়েবকনফিগস were সূত্র: learnable.com/books/…
ডেভিড শোয়ার্জ

24

আপনি কি ওয়েব স্থাপনার প্রকল্পগুলিতে সন্ধান করেছেন?

http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en

আপনি ২০০৮ এ না থাকলে ভিএস ২০০৫ এর জন্যও একটি সংস্করণ রয়েছে।


ওয়েব ডিপ্লোয়মেন্ট প্রকল্পগুলি ব্যবহারের জন্য এটি একটি ভাল গাইড: johnnycoder.com/blog/2010/01/07/…
গ্যারি ডব্লু

ওয়েব ডিপ্লোয়মেন্ট প্রকল্পগুলি এখন ভিএস "প্রকাশনা প্রোফাইল" হিসাবে দেখা যাচ্ছে ডায়রিওফানিনজা.com
blog/

13

আমিও জানতে চাই এটি আমার জন্য সমস্যাটি বিচ্ছিন্ন করতে সহায়তা করে

<कनेक्शनStrings কনফিগারসোর্স = "সংযোগস্রিংস.কনফিগ" />

আমি তারপরে একটি সংযোগস্রিংস.কনফিগের পাশাপাশি একটি "{হোস্ট} সংযোগস্রিংসকনফিগ" রাখি। এটি এখনও একটি সমস্যা, তবে আপনি যদি দুটি পরিবেশে পৃথক পৃথক বিভাগগুলির জন্য এটি করেন তবে আপনি একই ওয়েবকনফিগ স্থাপন এবং সংস্করণ করতে পারবেন।

(এবং আমি ভিএস, বিটিডব্লু ব্যবহার করি না)


আপনি যদি ভিএস ব্যবহার করে থাকেন তবে আপনি প্রাক-বিল্ড-ইভেন্টগুলি একটি ডিবাগ-কনসেকশনস্ট্রিংস কনফিগ বা একটি রিলিজ.কনেকশনস্ট্রিংসকনফিগের মতো অনুলিপি ব্যবহার করতে পারেন: কপি $ (প্রজেক্টডির) $ (কনফিগারেশননাম) সংযোগস্রিংসকনফিগ $ (প্রজেক্টডির) সংযোগসট্রিংসকনফিগ স্কট দ্বারা হ্যানসেলম্যান: hanselman.com/blog/…
টমাস

6

আমি আমার বিভিন্ন পরিবেশে স্থাপন করতে একটি ন্যান্ট বিল্ড স্ক্রিপ্ট ব্যবহার করি। এক্সপ্যাথের মাধ্যমে আমার কনফিগারেশন ফাইলগুলিতে এটি পরিবর্তন করা হয়েছে যেগুলি কোথায় স্থাপন করা হচ্ছে তার উপর নির্ভর করে এবং তারপরে এটি স্বয়ংক্রিয়ভাবে তুলনার বাইরেও তাদের সেই পরিবেশে ফেলে দেয় ।

সেটআপ করতে এক বা দুই মিনিট সময় নেয়, তবে আপনাকে একবার এটি করা দরকার। তারপরে আমি আরও একটি কাপ কফি পেতে গিয়ে ব্যাচ ফাইলগুলি নিয়ে যাবে। :)

এখানে এটির একটি নিবন্ধ পাওয়া গেল।


5

একটি প্রকল্পে যেখানে আমাদের 4 টি পরিবেশ ছিল (উন্নয়ন, পরীক্ষা, মঞ্চায়ন এবং উত্পাদন) আমরা একটি সিস্টেম তৈরি করেছি যেখানে অ্যাপ্লিকেশনটি মেশিনের নামের উপর ভিত্তি করে উপযুক্ত কনফিগারেশনটি নির্বাচিত করেছিল it

এটি আমাদের পক্ষে কাজ করেছে কারণ:

  • অ্যাডমিনিস্ট্রেটররা ডেভেলপারদের (একটি প্রয়োজনীয়তা) জড়িত না করে এবং কনফিগারেশন ফাইলগুলির সাথে ঝাঁকুনি না দিয়ে (যা তারা ঘৃণা করেছিল) অ্যাপ্লিকেশন স্থাপন করতে পারে;
  • মেশিনের নামগুলি একটি সম্মেলনে মেনে চলেন। আমরা নিয়মিত এক্সপ্রেশন ব্যবহার করে নামের সাথে মেলে এবং একটি পরিবেশে একাধিক মেশিনে স্থাপন করি; এবং
  • আমরা সংযোগের স্ট্রিংয়ের জন্য সংহত সুরক্ষা ব্যবহার করেছি। এর অর্থ আমরা কোনও পাসওয়ার্ড প্রকাশ না করে ডিজাইনের সময় অ্যাকাউন্টের নামগুলি কনফিগার করতে পারি।

এটি এই ক্ষেত্রে আমাদের পক্ষে ভাল কাজ করেছে, তবে সম্ভবত সর্বত্র কাজ করবে না।


3

এন্টারপ্রাইজ লাইব্রেরি কনফিগারেশন সম্পাদক আপনাকে এটি করতে সহায়তা করতে পারে। এটি আপনাকে একটি বেস কনফিগারেশন ফাইল তৈরি করতে দেয় এবং তারপরে প্রতিটি পরিবেশের জন্য ডেল্টাস দেয়। তারপরে আপনি পরিবেশ-নির্দিষ্ট ওয়েবকনফিগ তৈরি করতে বেস কনফিগারেশন এবং ব-দ্বীপটি একীভূত করতে পারেন। তথ্য কটাক্ষপাত এখানে যা চেয়ে আমি করতে পারেন ভালো মাধ্যমে আপনি লাগে।


3

আপনি এটিকে পোস্ট-বিল্ড পদক্ষেপও তৈরি করতে পারেন। একটি নতুন কনফিগারেশন সেটআপ করুন যা ডিবাগ এবং রিলিজ ছাড়াও "স্থাপন করুন" এবং তারপরে সঠিক ওয়েবকনফিগের উপরে পোস্ট-বিল্ড স্টেপ অনুলিপি রাখুন।

আমরা আমাদের সমস্ত প্রকল্পের জন্য স্বয়ংক্রিয় বিল্ডগুলি ব্যবহার করি, এবং সেগুলি সহ বিল্ড স্ক্রিপ্টটি ওয়েব অবস্থানটি সঠিকভাবে চিহ্নিত করার জন্য ওয়েব কোডফাইগ ফাইল আপডেট করে। আপনি যদি ভিএস থেকে সমস্ত কিছু করেন তবে এটি আপনাকে সাহায্য করবে না


3

এটি মেশিন.কনফিগ ব্যবহারের বিশাল সুবিধাগুলির মধ্যে একটি। আমার শেষ কাজটিতে, আমাদের বিকাশ, পরীক্ষা এবং উত্পাদন পরিবেশ ছিল। আমরা সংযোগ স্ট্রিংয়ের মতো জিনিসের জন্য (উপযুক্ত, দেব / পরীক্ষা / প্রোড এসকিউএল মেশিনে) মেশিন কনফিগ ব্যবহার করতে পারি।

যদি আপনার প্রকৃত উত্পাদন মেশিনে অ্যাক্সেস না থাকে তবে এটি আপনার জন্য সমাধান হতে পারে না (যেমন, আপনি যদি কোনও শেয়ার্ড হোস্টে কোনও হোস্টিং সংস্থা ব্যবহার করছিলেন)।


1

আপনি এক্সটেনশনটি ব্যবহার করতে পারেন "কনফিগারেশন ট্রান্সফর্ম" "স্লোচিথাহ" এর মতোই কাজ করে,


হ্যাঁ এটি কাজ করে তবে কেবল স্থাপনার উপর, সংকলনের উপর নয়, আমি আশা করি আমি কেবল আলাদা কনফিগার ট্রান্সফর্ম এনভায়রনমেন্টগুলি ব্যবহার করে সংকলন এবং ডিবাগ করতে পারতাম
চ্যানিকোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.