c# - একটি ASP.NET সেটিং সনাক্ত করা হয়েছে যা ইন্টিগ্রেটেড পরিচালিত পাইপলাইন মোডে প্রয়োগ হয় না




iis .net-4.0 (8)

2 র্থ বিকল্প আপনি চান এক।

আপনার web.config , এই কীগুলি বিদ্যমান তা নিশ্চিত করুন:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

আমি DotNetOpenAuth ইনস্টল করা হয়েছে SDK-3.4.5.10201.vix এবং আমি এটি কাজ করতে পারছি না। এটি স্থানীয়ভাবে কাজ করে (যখন আমি স্থানীয় হোস্ট হিসাবে চালাতে পারি) কিন্তু যখন আমি প্রকাশ করার চেষ্টা করি তখন এটি কাজ করছে না।

আইআইএস ত্রুটি বার্তা আমি পেতে

ত্রুটি সংক্ষিপ্ত বিবরণ
HTTP ত্রুটি 500.22 - অভ্যন্তরীণ সার্ভার ত্রুটি
একটি ASP.NET সেটিং সনাক্ত করা হয়েছে যা ইন্টিগ্রেটেড পরিচালিত পাইপলাইন মোডে প্রয়োগ হয় না।

এবং

Module       ConfigurationValidationModule  
Notification BeginRequest  
Handler      StaticFile  
Error Code   0x80070032  

তাহলে সমস্যার সমাধান কিভাবে করবেন তার কিছু পরামর্শ রয়েছে:

যা আপনি চেষ্টা করতে পারেন:

  • system.webServer/modules বিভাগে কনফিগারেশন স্থানান্তর করুন। আপনি নিজে নিজে এটি করতে পারেন অথবা কমান্ড লাইন থেকে AppCmd ​​ব্যবহার করে - উদাহরণস্বরূপ, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/" । আপনার অ্যাপ্লিকেশনটি স্থানান্তরিত করার জন্য AppCmd ব্যবহার করে এটি ইন্টিগ্রেটেড মোডে কাজ করতে সক্ষম হবে এবং ক্লাসিক মোডে এবং আইআইএস এর পূর্ববর্তী সংস্করণগুলিতে কাজ চালিয়ে যাবে।

  • আপনি যদি নিশ্চিত হন যে এই ত্রুটিটি উপেক্ষা করা ঠিক আছে তবে এটি system.webServer/[email protected] মিথ্যা সেট করে অক্ষম করা যেতে পারে।

  • অন্যথায়, অ্যাপ্লিকেশনটিকে ক্লাসিক মোড অ্যাপ্লিকেশন পুলে স্যুইচ করুন - উদাহরণস্বরূপ, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool" । আপনি যদি আপনার অ্যাপ্লিকেশনটি স্থানান্তর করতে অক্ষম হন তবেই এটি করুন।
    (আপনার অ্যাপ্লিকেশন পাথ এবং অ্যাপ্লিকেশন পুলের নামতে "ডিফল্ট ওয়েব সাইট" এবং "ক্লাসিক .NET AppPool" সেট করুন)

কিন্তু সমস্যা হল যে আমি আইএসএস সার্ভারে অ্যাক্সেস নেই কারণ আমি এটির মালিক নই। এই সমাধানের কোন উপায় আছে?


আপনার web.config এ এই কীগুলি বিদ্যমান তা নিশ্চিত করুন:

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
    </system.webServer>
</configuration>

পাশাপাশি Asp.Net Impresonation = আইআইএস সাইট অ্যাটাকেশনে অক্ষম করুন চেক করুন


আমার ক্ষেত্রে আমি bin ফোল্ডারে dll অনুপস্থিত ছিল যা ওয়েব.config ফাইলে উল্লেখ করা হয়েছিল। তাই আপনি ওয়েব.config কোনো সেটিং ব্যবহার করা হয়েছে কিনা তা পরীক্ষা করুন কিন্তু আসলে dll নেই।

ধন্যবাদ


আমি এই সমস্যা মধ্যে দৌড়ে কিন্তু একটি ভিন্ন ফিক্স ছিল। এতে Control Panel>Administrative Tools>IIS Manager আপডেট করা হয়েছে Control Panel>Administrative Tools>IIS Manager এবং Classic থেকে Integrated থেকে আমার অ্যাপ সাইট এর পরিচালিত পাইপলাইনটি ফিরিয়ে আনা।


এটা আমার জন্য কাজ করেছে:

  1. মূলত তৈরি সাইট মুছে দিন।
  2. আইআইএস সাইটে বিনোদন
  3. পরিষ্কার সমাধান
  4. সমাধান তৈরি করুন

আমি মূলত সাইট তৈরি যখন কিছু দক্ষিণ গিয়ে মনে হচ্ছে। আমি সমাধানগুলি ঘৃণা করি যা "আপনার মেশিনটি পুনঃসূচনা করুন, তারপরে উইন্ডোজ পুনরায় ইনস্টল করুন" কী ত্রুটি সৃষ্টি করে তা জানাই না। কিন্তু, এই আমার জন্য কাজ। দ্রুত এবং সহজ। এটা অন্য কেউ সাহায্য আশা করি।


এটি সমাধান করার জন্য আমাকে কয়েক ঘন্টা সময় লেগেছে কারণ এই ত্রুটি সম্পর্কে আমি এখানে যে সেটিংস পেয়েছি সেগুলি একই ছিল কিন্তু এটি এখনও কাজ করে নি। সমস্যাটি হল আমার ওয়েব পরিষেবাদিতে একটি ফোল্ডার ছিল যার থেকে ফাইলটি WinCE ডিভাইসে পাঠানো উচিত, যে ফোল্ডারটিকে Classic.NetAppPool এর সাথে একটি অ্যাপ্লিকেশনে রূপান্তর করার পরে এটি কাজ শুরু করে।


স্থানীয় জন্য পদ্ধতি ত্রুটি


<validation validateIntegratedModeConfiguration="false"/> উপসর্গগুলি সংযোজন করে, কিন্তু সমস্ত পরিস্থিতিতে উপযুক্ত নয়। এই সমস্যাটি প্রায় কয়েকবার দৌড়ে গিয়ে, আমি কেবল অন্যদের সমস্যার সমাধান করতেই কিন্তু বুঝতে পারছি না। (যা আইআইএস 6 হিসাবে পৌনঃপুনিক এবং গুজব মধ্যে fades আরো গুরুত্বপূর্ণ হয়ে ওঠে।)

পটভূমি:

এই সমস্যাটি এবং এর আশেপাশে বিভ্রান্তি ASP.NET 2.0 এবং IIS 7 প্রবর্তনের সাথে শুরু হয়েছিল। আইআইএস 6 ছিল এবং শুধুমাত্র একটি পাইপলাইন মোড আছে এবং এটি আইআইএস 7+ এর মতো "ক্লাসিক" মোডের সমতুল্য। আইআইএস 7+ এ চলমান সকল অ্যাপ্লিকেশনের জন্য দ্বিতীয়, নতুন, এবং প্রস্তাবিত পাইপলাইন মোডকে "ইন্টিগ্রেটেড" মোড বলা হয়।

সুতরাং, পার্থক্য কি? কী পার্থক্য হল ASP.NET আইআইএসের সাথে ইন্টারঅ্যাক্ট করে।

  • ক্লাসিক মোড একটি ASP.NET পাইপলাইনে সীমাবদ্ধ যা আইআইএস পাইপলাইনের সাথে যোগাযোগ করতে পারে না। মূলত একটি অনুরোধ আসে এবং সার্ভারের কনফিগারেশনের মাধ্যমে আইআইএস 6 / ক্লাসিককে বলা হয় যে, ASP.NET এটি পরিচালনা করতে পারে তবে আইআইএস এএসপি নেটওয়ার্কে অনুরোধটি বন্ধ করে এবং চলবে। এর তাত্পর্য একটি উদাহরণ থেকে গ্রিল করা যাবে। যদি আমি স্ট্যাটিক ইমেজ ফাইলগুলিতে অ্যাক্সেস অনুমোদন করতে পারতাম, তবে আমি এটি ASP.NET মডিউলের সাথে করতে পারব না কারণ আইআইএস 6 পাইপলাইন সেই অনুরোধগুলিকে নিজেই পরিচালনা করবে এবং এএসপি.NET কখনোই সেই অনুরোধগুলি দেখতে পাবে না কারণ তাদের কখনও হস্তান্তর করা হয়নি । * অন্যদিকে, ব্যবহারকারীরা কোন ব্যবহারকারীদের অ্যাক্সেস করতে পারে তা অনুমোদন করে। Foo.aspx এর জন্য অনুরোধের মতো একটি এসএসএক্সএক্স পৃষ্ঠাটি আইআইএস 6 / ক্লাসিক এমনকি তুচ্ছ হয় কারণ আইআইএস সবসময় এএসপি.NET পাইপলাইনের কাছে অনুরোধগুলি বন্ধ করে দেয়। ক্লাসিক মোডে ASP.NET এটিকে কী বলা হয়েছে তা জানতেন না এবং আইআইএস 6 / ক্লাসিক এমন অনেক কিছু করতে পারে না যা এটি বলে নাও হতে পারে।

  • ইন্টিগ্রেটেড মোড সুপারিশ করা হয় কারণ ASP.NET হ্যান্ডলার এবং মডিউলগুলি আইআইএস পাইপলাইনের সাথে সরাসরি ইন্টারঅ্যাক্ট করতে পারে। আইআইএস পাইপলাইনটি আরএসপি.NET পাইপলাইনের অনুরোধটি কেবলমাত্র হস্তান্তর করে না, এটি এখন আইআইএস পাইপলাইনে সরাসরি হুক করার জন্য এবং এটির যে সমস্ত অনুরোধগুলি হিট করে সেগুলি ASP.NET কোডটিকে অনুমোদন করে। এর মানে হল যে একটি ASP.NET মডিউল শুধুমাত্র স্ট্যাটিক ইমেজ ফাইলগুলিতে অনুরোধগুলি পালন করতে পারে না, তবে সে অনুরোধগুলিকে আটকাতে পারে এবং অ্যাক্সেস অস্বীকার করে, অনুরোধ লগিং ইত্যাদির মাধ্যমে পদক্ষেপ নিতে পারে।

ত্রুটি অতিক্রম করা:

  1. আপনি যদি আইআইএস 6 এর জন্য মূলত নির্মিত একটি পুরানো অ্যাপ্লিকেশন চালাচ্ছেন তবে সম্ভবত আপনি এটি একটি নতুন সার্ভারে স্থানান্তরিত হয়েছেন, ক্লাসিক মোডটিতে সেই অ্যাপ্লিকেশনটির অ্যাপ্লিকেশন পুলটি চালানোর ক্ষেত্রে একেবারেই কোনও ভুল হতে পারে না। এগিয়ে যান আপনি খারাপ অনুভব করতে হবে না।
  2. তারপরে আবার আপনি আপনার অ্যাপ্লিকেশনটি একটি মুখ-লিফট দিচ্ছেন নাকি এটি ঠিকঠাক সাথে চুগিং করা হয়েছে যতক্ষণ না আপনি একটি তৃতীয় পক্ষের লাইব্রেরি নুগেটের মাধ্যমে নিজে নিজে বা অন্য কোনো উপায়ে ইনস্টল না করেন। যে ক্ষেত্রে এটি সম্পূর্ণরূপে সম্ভব httpHandlers বা httpModules যোগ করা হয়েছে। ফলাফলটি আপনি যে ত্রুটিটি দেখছেন তা হল validateIntegratedModeConfiguration ডিফল্ট ডিফল্ট। এখন আপনার দুটি পছন্দ আছে:

    1. httpModules থেকে system.web এবং httpModules উপাদান সরান। এই থেকে একটি সম্ভাব্য সম্ভাব্য ফলাফল আছে:
      • সবকিছু সূক্ষ্ম কাজ, একটি সাধারণ ফলাফল;
      • আপনার অ্যাপ্লিকেশনটি অভিযোগ করে চলছে, আপনার কাছ থেকে উত্তরাধিকারী একটি প্যারেন্ট ফোল্ডারে একটি ওয়েব.config থাকতে পারে, যে ওয়েব.config পরিষ্কার করাও বিবেচনা করুন;
      • আপনি httpHandlers এবং httpModules মুছে ফেলার ক্লান্ত হয়ে পড়েন যা NuGet প্যাকেজগুলি system.web যোগ করে system.web , system.web আপনাকে যা করতে হবে তা করে।
  3. যদি ঐ অপশনগুলি কাজ না করে অথবা এটির চেয়ে বেশি সমস্যায় পড়ে তবে আমি আপনাকে বলব না যে আপনি validateIntegratedModeConfiguration সেটিকে false সেট করতে পারবেন না তবে কমপক্ষে আপনি জানেন যে আপনি কী করছেন এবং কেন এটি গুরুত্বপূর্ণ।

ভাল পড়া:

* অবশ্যই আইআইএস 6 / ক্লাসিক থেকে ওয়াইল্ডকার্ড ম্যাপিংয়ের মতো ক্লাসিকের মাধ্যমে ASP.NET পাইপলাইনে সমস্ত ধরনের অদ্ভুত জিনিসগুলি পেতে আপনি উপায়গুলি পছন্দ করেন।





iis-7.5