আইআইএস 7 - লক লঙ্ঘন ত্রুটি, এইচটিটিপি হ্যান্ডলার, মডিউল এবং <ক্লিয়ার /> উপাদান


18

আমার কাছে একটি এএসপি.এনইটি সাইট রয়েছে যা এইচটিটিপি হ্যান্ডলারের নিজস্ব সেট ব্যবহার করে এবং কোনও মডিউলের প্রয়োজন নেই।

সুতরাং, আইআইএস in-এ, আমাকে যা করতে হয়েছিল তা কেবল আমার ওয়েবকনফাইগে ছিল:

<httpModules>
    <clear />
</httpModules>

যাইহোক, আমি যদি system.webServerআইআইএস area এর ক্ষেত্রেও একই কাজ করার চেষ্টা করি, সাইটটি দেখার চেষ্টা করার সাথে সাথে আমি একটি 500 ত্রুটি পেয়েছি এবং আইআইএস ম্যানেজারে যখন আমি হ্যান্ডলার ম্যাপিংগুলি দেখার চেষ্টা করি, আমি বার্তাটি সহ একটি পপআপ বক্স পেয়েছি:

এই অপারেশনটি করার সময় একটি ত্রুটি হয়েছিল

বিবরণ:

ফাইলের নাম:

\ \ সি: \ সাইট \ TheWebSiteGoesHere \ web.config

লাইন নম্বর: 39

ত্রুটি: লক লঙ্ঘন

লাইন 39 যেখানে <clear />উপাদান রয়েছে।

কিছু গুগলিং আমাকে এই আদেশটি চালানোর সাথে জড়িত একটি সমাধানে নিয়ে গেছে:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/modules

... কিন্তু তাতে সমস্যার সমাধান হয়নি।

উত্তর:


11

এটা নকশা দ্বারা। System.webServer বিভাগটি মূলত আইআইএসকেই সংজ্ঞায়িত করে। যদি আপনি হন তবে আপনার কিছুই থাকবে না। অ্যাপ্লিকেশনহোস্ট.কনফাইগ-এ আপনার এমন কিছু হওয়া উচিত:

        <modules>
            <add name="HttpCacheModule" lockItem="true" />
            <add name="DynamicCompressionModule" lockItem="true" />
            <add name="StaticCompressionModule" lockItem="true" />
            <add name="DefaultDocumentModule" lockItem="true" />
            <add name="DirectoryListingModule" lockItem="true" />
            <add name="IsapiFilterModule" lockItem="true" />
            <add name="ProtocolSupportModule" lockItem="true" />
            <add name="HttpRedirectionModule" lockItem="true" />
            <add name="StaticFileModule" lockItem="true" />
            ...

লক আইটেমের বৈশিষ্ট্যগুলি লক্ষ্য করুন। যেহেতু 1 বা ততোধিক লক আইটেম রয়েছে তাই লক লঙ্ঘন নিক্ষেপ করবে।

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

সম্পাদন করা

(তার অনুরোধ অনুযায়ী ড্যানিয়েলের আরও তথ্য যুক্ত করা হয়েছে। (স্কট))

স্কট যা বলেছিল তার ভিত্তিতে আমি যা করেছি তা এখানে:

% উইন্ডির% \ system32 \ inetsrv \ কনফিগারেশনে অ্যাপ্লিকেশন হোস্টকনফিগ খোলা হয়েছে। মনে রাখবেন যে 64 বিট উইন্ডোজ সার্ভার 2008-এ, আপনাকে একটি 64 বিট সম্পাদক দিয়ে ফাইল সম্পাদনা করতে হবে (নেটিভ নোটপ্যাডটি করবে, তবে নোটপ্যাড ++ ফাইলটি সন্ধান করতে পারবে না)। এই সম্পর্কে আরও তথ্যের জন্য এখানে দেখুন।

উপাদানটিতে, সমস্ত মডিউলের লকআইটেম বৈশিষ্ট্যটিকে মিথ্যাতে পরিবর্তন করুন।

আমার ওয়েব অ্যাপ্লিকেশনের ওয়েব কোডফাইগ ফাইলে তখন নিম্নলিখিতগুলি করতে সক্ষম হয়েছিল:

<system.webServer>
   <modules>
      <clear />
   </modules>
</system.webServer>

অবশ্যই স্কট দেখিয়েছে, এর অর্থ এই যে কোনও ওয়েব সার্ভার বাকি নেই, সুতরাং আমার জিনিসগুলি আবার চালানোর জন্য আমার প্রয়োজনীয় ন্যূনতম সেট (ওয়াইএমএমভি):

<add name="HttpRedirectionModule" lockItem="false" />

<add name="StaticFileModule" lockItem="false" />

<add name="CustomLoggingModule" lockItem="false" />

<add name="CustomErrorModule" lockItem="false" />

<add name="IsapiModule" lockItem="false" />

<add name="AnonymousAuthenticationModule" lockItem="false" />

এছাড়াও, আগ্রহী যে কারও জন্য, আমি কেন এটি করছি তা ব্যাকস্টোরি এখানে ।


2

স্কট, আপনি কি আপনার উত্তরের সাথে এটি যুক্ত করতে পারেন?

স্কট যা বলেছিল তার ভিত্তিতে আমি যা করেছি তা এখানে:

  1. খোলা হয়েছে applicationHost.config%windir%\system32\inetsrv\config। মনে রাখবেন যে 64 বিট উইন্ডোজ সার্ভার ২০০৮-এ, আপনাকে একটি bit৪ বিট সম্পাদক দিয়ে ফাইলটি সম্পাদনা করতে হবে (দেশীয় নোটপ্যাডটি করবে, তবে নোটপ্যাড ++ ফাইলটি সন্ধান করতে পারবে না)। এই সম্পর্কে আরও তথ্যের জন্য এখানে দেখুন ।

  2. ইন <system.webServer>উপাদান পরিবর্তন lockItemকরার জন্য সকল মডিউল উপর অ্যাট্রিবিউট false

  3. আমার ওয়েব অ্যাপ্লিকেশনের ওয়েব কোডফাইগ ফাইলে তখন নিম্নলিখিতগুলি করতে সক্ষম হয়েছিল:

    <system.webServer>
       <modules>
          <clear />
       </modules>
    </system.webServer>
    
  4. অবশ্যই, যেমন স্কট তুলে ধরে, এর মানে হল কোন ওয়েব সার্ভার ছেড়ে তাই এখানে হয় মডিউল ন্যূনতম সেট আমি আমার স্টাফ আবার (YMMV) চলমান পেতে প্রয়োজন:

    <add name="HttpRedirectionModule" lockItem="false" />

    <add name="StaticFileModule" lockItem="false" />

    <add name="CustomLoggingModule" lockItem="false" />

    <add name="CustomErrorModule" lockItem="false" />

    <add name="IsapiModule" lockItem="false" />

    <add name="AnonymousAuthenticationModule" lockItem="false" />

এছাড়াও, আগ্রহী যে কারও জন্য, আমি কেন এটি করছি তা ব্যাকস্টোরি এখানে


শেষ বিটটিতে ফর্ম্যাটিংয়ের জন্য দুঃখিত ... কিছু কারণে এটি এটিকে স্বাভাবিক "কোড" ফর্ম্যাটে প্রদর্শন করবে না।
ড্যানিয়েল শেফার

ঠিক. শুধু এটি যুক্ত করা হয়েছে।
স্কট ফোর্সিথ - এমভিপি

2

আশা করি সাহায্য করতে দেরি হয়নি।

আমি আজই এই সমস্যাটি পেয়েছি এবং অ্যাপ্লিকেশনহোস্টটি কনফিগ এক্সএমএল নোড অনুসরণ করে সমস্যা সম্পাদনা করব de

httpErferences লকঅ্যাট্রিবিউটস = "অনুমতিপ্রাপ্তপথগুলি যখন অনুমোদিত, ডিফল্টপথ"

সেই ", ডিফল্টপথ" সরান এবং আপনাকে আইআইএস পুনরায় চালু করুন (iisreset)।

আমি আশা করি এর সহায়ক


0

আপনাকে মূল ওয়েবকনফিগ সরানোর চেষ্টা করুন (ব্যাকআপ তৈরি করুন) এবং আইআইএসের মাধ্যমে পরিবর্তনগুলি করার পরে (এটি নতুন ওয়েবকনফিগ তৈরি করবে) মূল পরিবর্তনগুলি পুনরুদ্ধার করুন। আপনি যদি এইচটিটিপি এররগুলি কনফিগার করেন তবে এই HTTP অনুসরণ করুন

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