লক করা ফাইলটি মুক্তি পেতে আইআইএস 7 কীভাবে পাবেন?


25

আমাদের উত্পাদন তৈরির সময়, রুট ডিরেক্টরিতে একটি খুব বড় (10 মেগাবাইট) স্ট্যাটিক সামগ্রী ফাইলটি কখনও কখনও আইআইএস দ্বারা লক হয়ে যায় এবং পরিষ্কার কার্য দ্বারা মুছে ফেলা যায় না। এটি সম্ভবত এটি কারণ এটি সক্রিয়ভাবে এক বা একাধিক ক্লায়েন্টের কাছে পরিবেশিত হচ্ছে।

বিল্ড প্রক্রিয়া মাধ্যমে পরিষ্কার করার আগে ওয়েবসাইটটি থামিয়ে দেয়

c:\Windows\System32\inetsrv\appcmd.exe stop site http://oursite.com

তবে এটি ফাইলটি প্রকাশ করে না - প্রক্রিয়াটির লকটি ত্যাগ করার জন্য আমাদের আইআইএস পুনরায় চালু করতে হবে।

appcmd.exeআপনাকে আইআইএসকে পুরোপুরি নামিয়ে আনতে দেয়; আমরা এটি করতে চাই না!

আইআইএস পুনরায় আরম্ভ না করে আইআইএসকে কোনও লক করা ফাইল ছেড়ে দেওয়ার অনুমতি দেওয়ার কী কী উপায় রয়েছে? কেবল পৃথক ওয়েবসাইটটি থামানো এবং শুরু করা অবশ্যই ফাইল লক প্রকাশের জন্য কাজ করছে না।


1
গুরুতর প্রশ্ন এখন: এই স্থিতিশীল ফাইলটি বিল্ড থেকে বিল্ডে পরিবর্তিত হয় বা এটি কি এমন কোনও ফাইল যা কখনও বদলাবে না?
স্প্ল্যাটনে

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

এটি ঠিক আপনার সাইটম্যাপ.এক্সএমএল?
ডেভ চেনি

হ্যাঁ, এটি ছিল আমাদের সাইটম্যাপ.এক্সএমএল, তবে এখন আমাদের কাছে কেবল এটির জন্য একটি এমভিসি রুট রয়েছে এবং স্মিকারে চুষে রাখা ক্যাশে। আর লকিং নেই!
জারোদ ডিকসন

উত্তর:


12

সিসিনটার্নালস প্রসেস এক্সপ্লোরার এর মতো সরঞ্জাম রয়েছে, যা ফাইল হ্যান্ডলগুলি জোর করে খুঁজে পেতে এবং বন্ধ করতে পারে তবে অ্যাপ্লিকেশনটির অবস্থা এবং আচরণ (উভয় আপনার এবং এই ক্ষেত্রে আইআইএস) অনির্ধারিত। কিছু যত্ন নেবে না, কেউ ত্রুটি করবে এবং অন্যরা শক্ত ক্রাশ করবে।

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


2
প্রক্রিয়া অন্বেষণকারীর জন্য +1, আপনি যদি থ্রেডটি ফাইলের হ্যান্ডেলটি উন্মুক্ত করে রেখেছেন তা দেখতে
পারলে

হয়তো খুব দরকারী মুক্তি লক ফাইল প্রোগ্রামেটিক্যালি সঙ্গে Sysinternals সরঞ্জাম ব্যবহার PowerShell , সি # বা স্ক্রিপ্ট ব্যাট-cmd কমান্ড
Kiquenet

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

13

এটি করার জন্য আমি "হ্যান্ডল" নামে একটি ছোট সরঞ্জাম ব্যবহার করি ।

আপনি মূলত এটি লক করা ফাইলটির নামটি পাস করুন এবং এটি আপনাকে জানায় যে কী প্রক্রিয়াগুলি এটি ব্যবহার করছে:

handle c:\weird.file
Something.exe pid: 1000 100: C:\weird.file
Something.exe pid: 1000 101: C:\weird.file

তারপরে আপনি এটিটি হ্যান্ডেলটি বন্ধ করার জন্য এটি -c স্যুইচ করুন:

handle.exe -c 101 -p 1000 -y
handle.exe -c 100 -p 1000 -y

আউটপুট পার্স করার জন্য মোড়ক প্রোগ্রাম ছাড়াই বিল্ড স্ক্রিপ্টে কাজ করার জন্য আপনি संघर्ष করতে পারেন তবে আশা করি এটি সাহায্য করবে।


উদ্ধারকালে শক্তিশালী মার্ক রাশিনোভিচ - আমি এটি পরীক্ষা করে দেখব, কিন্তু জোর করে কোনও হ্যান্ডেল বন্ধ করার সময় হ্যান্ডেলের প্রোগ্রামের অস্থিরতার ভয়াবহ সতর্কতা আমাকে নার্ভাস করে তোলে।
জারোদ ডিকসন

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

@ জারোদ: ভাগ্য? আপনার মূল পোস্টে কোনও ফলাফল পোস্ট করতে পারেন, দয়া করে? আমি এখানে কি ঘটছে তা দেখার জন্য ভালোবাসি, পর্দার আড়ালে।
খাঁটি.ক্রোমে

হয়তো খুব দরকারী মুক্তি লক ফাইল প্রোগ্রামেটিক্যালি ব্যবহার হাতল সঙ্গে PowerShell , সি # বা স্ক্রিপ্ট ব্যাট-cmd কমান্ড এবং প্রক্রিয়া একটি ফোল্ডার লক পেতে
Kiquenet

5

আমি নিশ্চিত না আপনি অস্থায়ী সমাবেশগুলিতে এসপেক্স ফাইলগুলির সংকলনটি বোঝাচ্ছেন কিনা। আমরা এএসপি.এনইটি ডিপ্লোয়মেন্ট প্রকল্পগুলি ব্যবহার করছি , যা আগে থেকেই সমস্ত এসপিএক্স / এসএসএক্স ফাইল প্রাক-কম্পাইল করে।

"প্রকাশ" থেকে "বিন" ফোল্ডারে বাইনারি ফাইলগুলি অনুলিপি করার সময়, আমরা অস্থায়ীভাবে একটি অ্যাপ_অফ্লাইন.এইচটিএম ফাইল সক্ষম করি যা সমস্ত সমাবেশগুলি অনুলিপি করার পরে সরানো হয় (মাত্র কয়েক সেকেন্ড)। এইভাবে আমি কখনও ফাইল লকগুলির অভিজ্ঞতা পাই নি।

সম্পাদনা করুন:

আপনি ওয়েব সাইটটি বন্ধ না করে অ্যাপ্লিকেশন পুলটি পুনরায় ব্যবহারের চেষ্টা করতে পারেন অ্যাপ্লিকেশন সিএমডি.এক্সই ব্যবহার করে:

C:\Windows\System32\inetsrv\appcmd.exe recycle apppool "My App Pool Name"

1
না, এটি মূল ডিরেক্টরিতে কেবল একটি স্থিতিশীল ফাইল - সেই তথ্যটি দিয়ে প্রশ্নটি আপডেট করছে!
জারোদ ডিকসন

1
আমার ধারণা আপনি আপনার বিল্ড জবটি নিষ্ক্রিয় করার সময় অ্যাপ_অফলাইন htm ব্যবহার করছেন?
স্প্ল্যাটনে

আমি মনে করি আমরা কোনও ফল লাভ করার জন্য ম্যানুয়ালি পুনর্ব্যবহার করার চেষ্টা করেছি, তবে পরের বার লক থাকার পরে আমরা আবার চেষ্টা করব (অ্যাপ পুলগুলি নেট জন্য, ঠিক আছে? সম্ভবত এখানে সাহায্য করবে না)। এবং আমরা app_offline.htm ফাইল তৈরি করতাম, তবে এটি লকিংয়ে সহায়তা করে নি - যার কারণে আমরা পৃথক সাইটটিকে নীচে নামাতে চলে এসেছি।
টেকনোলজি ডিক্সন

আমি ভেবেছি তুমি ঠিক আছ আমি এটি আমাদের সার্ভারগুলির একটিতে পরীক্ষা করব এবং আপনার কাছে ফিরে আসব।
স্প্ল্যাটনে

1
@ স্প্ল্যাটেন: অ্যাপ্লিকেশন পুলটি পুনর্ব্যবহারের মাধ্যমে ওয়েবসাইটটি ফাইলটি খোলার শর্ত থাকলে হ্যান্ডেলটি সরিয়ে ফেলা উচিত ছিল। পুলটি পুনর্ব্যবহার করা যদি সহায়তা না করে তবে আমার অনুমান যে অন্য কোনও কিছু ফাইল লক করে।
পিবিজেড

2

আমি এখন এটি চেষ্টা করে দেখছি: সম্ভবত আপনি যদি ডিরেক্টরিতে সূচক সক্রিয় করে থাকেন তবে ফাইল লক করার ক্ষেত্রে সমস্যা হতে পারে। http://www.richard-banks.org/2008/04/how-to-fix-problems-with-locked-files.html

এটি আইআইএস 6.0 তবে এটি ওএসের সাথে সম্পর্কিত বলে মনে হচ্ছে এবং আইআইএস নয় এটি এর মূল কারণ হতে পারে।


1

প্রক্রিয়া মনিটরের আপনাকে আপনার তদন্তে সহায়তা করা উচিত, ফাইল হ্যান্ডেলটি কীভাবে সন্ধান করতে হয় তার জন্য মার্কের ব্লগের ( একটি ব্যক্তি যিনি সরঞ্জামটি লিখেছেন) একটি উদাহরণ রয়েছে' s

কোনও ফাইল হ্যান্ডেল স্তরে আপনার আনলকটি স্বয়ংক্রিয় করতে আপনি এই আনলককারী সরঞ্জামটি চেষ্টা করতে চাইতে পারেন ।


দুর্দান্ত, আমি কখনও প্রসেস মনিটর ব্যবহার করি নি; তবে আমি যে প্রতিটি ওয়ার্কস্টেশন ব্যবহার করি তা অবিলম্বে প্রক্রিয়া এক্সপ্লোরার হয়ে যায়! টেকনেট.মাইক্রোসফট.ইন- ইউএস
জারোদ ডিকসন

1

উত্তর নয়, তবে আইআইএস সার্ভারটি পুনরায় আরম্ভ না করে সেই ফাইলটিকে "আনলক" করার কোনও উপায় না থাকলে কার্যকরী ধারণা:

আপনি যদি কোনও নতুন ফাঁকা ফোল্ডারে বিল্ড / স্থাপন করেন এবং ওয়েবসাইটের হোম ডিরেক্টরিটি সেই ফোল্ডারে পরিবর্তন করেন? যদিও আপনাকে একটি নতুন ফোল্ডার নাম তৈরি করতে হবে বা দুটি নামের মধ্যে স্যুইচ করতে হবে।

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


1

আমারও একই সমস্যা ছিল। এখন আমি এমএসডিপপ্লয় (ওয়েব মোতায়েন) এ স্যুইচ করেছি এবং এখন আমি কোনও কিছু না থামিয়ে নির্ভরযোগ্যভাবে ওয়েবসাইটটি আপডেট করতে পারি। আসলে এই পদক্ষেপটি আমাদের স্বয়ংক্রিয় বিল্ড সরঞ্জামে লিখিত আছে এবং এটি কোনও সমস্যা ছাড়াই সর্বদা ঘটে। এবং এটিও দ্রুত।


0

অবশ্যই, আইআইএস পরিষেবা বন্ধ করুন। দুঃখিত, আমি কিছু বুঝতে পারছি না।


2
আপনি যদি আইআইএস পরিষেবা বন্ধ করে দিচ্ছেন তবে আপনি সমস্ত ওয়েব সাইটগুলি
নেবেন

এটিই আমরা সত্যই এড়াতে চাই, যেহেতু আমরা আমাদের ক্রুজকন্ট্রোল.এনইটি সাইটটি নেমে আসতে চাই না - আমরা সাফল্যের জন্য একটি বিল্ড করার সময় পাগলের মতো "রিফ্রেশ স্ট্যাটাস" বোতামটি ক্লিক করি!
জারোদ ডিকসন

ঠিক আছে, প্রথমে অন্য কোথাও বিল্ডিং সম্পর্কে, তারপরে that সার্ভারে সমস্ত কিছু না করে স্থির ফাইলের উপরে স্থাপন করা কীভাবে?
মার্ক অ্যালেন

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

0

দ্রষ্টব্য: উইন্ডোজ ফাইল লকিং শব্দার্থবিজ্ঞানের বিশেষজ্ঞ নয়

জারোদ, আপনি কীভাবে ফাইলটির নাম পরিবর্তন করতে পারবেন? আপনি একটি অস্থায়ী এক্সটেনশান দিয়ে আপনার নতুন ফাইলটি তৈরি করতে এবং তারপরে বর্তমান ফাইলটির নাম পরিবর্তন করতে সক্ষম হতে পারেন।

উইন্ডোজ ফাইল লকিং শব্দার্থ যদি পসিক্সের অনুরূপ কাজ করে তবে যে পাঠকরা ফাইলটিতে বর্তমানের পড়ার লক ধরে রাখে, এখনও তাদের পড়া স্ট্রিমগুলি বন্ধ না করা পর্যন্ত পুরানো ফাইলটি পরিবেশন করা উচিত, যখন নতুন পাঠকরা নতুন ফাইলটি খুলবেন।


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