কীভাবে এএসপি.নেটে সর্বোচ্চ আপলোড ফাইলের আকার বাড়ানো যায়?


237

আমার একটি ফর্ম রয়েছে যা এএসপি.নেটে কোনও ফাইল আপলোড ব্যতীত। আমার সর্বোচ্চ আপলোডের আকারটি 4 এমবি ডিফল্টের উপরে বাড়ানো দরকার।

আমি নীচে কোডটি এমএসডিএন- তে উল্লেখ করে নির্দিষ্ট জায়গায় পেয়েছি

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

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

এটি কি সঠিক পথে নেওয়া? এবং আমি এটি কীভাবে ব্যবহার করব?


আপনি কি নিশ্চিত যে এটি কোনও কোড সীমাবদ্ধতা, এবং কোনও হোস্ট সীমাবদ্ধতা নয়? আইআইএসেরও একটি সীমা রয়েছে।
মিঃচ্রিস্টার

আমি নিশ্চিত যে এটি একটি নেট সীমাবদ্ধতা ছিল। নীচের উত্তরটি আমার পক্ষে কাজ করেছে।
এডি

উত্তর:


406

এই সেটিংটি আপনার ওয়েব কোডফাইগ ফাইলে যায়। এটি পুরো অ্যাপ্লিকেশনটিকে প্রভাবিত করে, যদিও ... আমি মনে করি না আপনি এটি প্রতি পৃষ্ঠায় সেট করতে পারবেন।

<configuration>
  <system.web>
    <httpRuntime maxRequestLength="xxx" />
  </system.web>
</configuration>

"xxx" কেবিতে রয়েছে। ডিফল্টটি 4096 (= 4 এমবি)।


6
এটি আমাকে প্রশস্ত সাইটের জন্য কাজ করতে পেয়েছে। আমি এখনই এটি 10240 (বা 10 এমবি) এ সেট করেছি। ধন্যবাদ!
এডি

12
আপনি যদি আইআইএস 7+ চালাচ্ছেন এবং এটি কার্যকর না হয় তবে আমার উত্তর দেখুন।
মিনিট

এটি কি কোনও নিয়ামকের কাছে সীমাবদ্ধ রাখা সম্ভব?
গিলারমো ভারিনি

@ এডি আমার দুটি ওয়েবকনফিগ ফাইল রয়েছে আমি এটি দুটি ক্ষেত্রেই ব্যবহার করেছি তবে এটি কার্যকর হয় না। আমি এটা কিভাবে করবো ?
আহমাদ

2
পাশাপাশি একটি নির্দিষ্ট পথে এটি করা সম্ভব। <লোকেশন পাথ = "এপিআই / কন্ট্রোলার"> <সিস্টেম.web> <authorization> <ব্যবহারকারীদের অনুমতি দিন = "*" /> </authorization> <http রুনটাইম ম্যাক্সেরুয়েস্টলেন্থ = "102400" /> </ সিস্টেমে.ওয়েব> </location> (অনুমোদনের ট্যাগের প্রয়োজন নেই)
নিওস

181

আইআইএস 7+ এর জন্য, পাশাপাশি httpRunটাইম ম্যাক্সেউক্যুয়েস্টলেন্থ সেটিং যুক্ত করার জন্য আপনাকেও যুক্ত করতে হবে:

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
      </requestFiltering>
    </security>
  </system.webServer>

অথবা আইআইএসে (7):

  • আপনি যে ফাইলটি বড় ফাইল আপলোড গ্রহণ করতে সক্ষম করতে চান তা নির্বাচন করুন।
  • প্রধান উইন্ডোতে 'অনুরোধ ফিল্টারিং' ক্লিক করুন
  • "বৈশিষ্ট্য সেটিংস সম্পাদনা করুন" নির্বাচন করুন
  • "সর্বাধিক অনুমোদিত সামগ্রীর দৈর্ঘ্য (বাইট)" সংশোধন করুন

আমি কিলোবাইট সম্পর্কে ভুলে গেছি: পি
অ্যান্ড্রু মাইরে

10
আপনি সম্ভবত সেট করতে হবে উভয় maxRequestLength এবং maxAllowedContentLengthকাজ এটি পেতে ... দেখুন stackoverflow.com/questions/6327452/...
MikeM

7
@ অ্যান্ড্রুমেহার ম্যাক্সএলয়েডড কনটেন্টলেন্ট বাইটে রয়েছে, কেবি নয়। মাইক্রোসফ্ট ডক্স বলছে ডিফল্ট 30 এমবি।
ড্যান র্যান্ডলফ

1
@ ড্যানর্যান্ডলফ আসলে ডিফল্টটি 30000000 (আনুমানিক 28.6MB), আইআইএস.এন.
কনফিগ্রেফারেন্স /

আপনার অবশ্যই দুটি সেটিংস দরকার।
মোহর্তান

74

ফাইলের আকার সীমাবদ্ধতা বাড়াতে আমাদের দুটি উপায় আছে

1. আইআইএস 6 বা তার চেয়ে কম

ডিফল্টরূপে, ASP.Net একটি ফাইল সর্বাধিক মাপ আপলোড করার সার্ভার প্রায় 4 মেগাবাইট । এই মান পরিবর্তন বৃদ্ধি করা যেতে পারে maxRequestLength মধ্যে অ্যাট্রিবিউট web.config

মনে রাখবেন: ম্যাক্সরেকুয়েস্টলিঙ্গটি কেবিতে রয়েছে

উদাহরণ : আপনি যদি 15 এমবি-তে আপলোডগুলি সীমাবদ্ধ রাখতে চান তবে ম্যাক্স রেকুয়েস্টএলথকে "15360" (15 x 1024) এ সেট করুন।

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2. আইআইএস 7 বা উচ্চতর

Files.IIS7 আপলোড করতে এখানে ব্যবহৃত সামান্য অন্যভাবে চালু করেছে মডিউল ফিল্টারিং অনুরোধ .Which ASP.Net.Means আগে মৃত্যুদন্ড কার্যকর উপায় পাইপলাইন কাজ (যে মান আইআইএস হয় maxAllowedContentLength ) প্রথম তারপর ASP.NET মান (পরীক্ষিত maxRequestLength ) পরীক্ষা করা হয়। থেকে maxAllowedContentLength অ্যাট্রিবিউট অক্ষমতা 28,61 মেগাবাইট .এই মান একই উভয় অ্যাট্রিবিউট পরিবর্তন বৃদ্ধি করা যেতে পারে web.config

মনে রাখবেন: ম্যাক্সএলয়েডকন্টেন্টলেন্টটি বাইটে রয়েছে

উদাহরণ : আপনি যদি আপলোডগুলিকে 15 এমবি-তে সীমাবদ্ধ রাখতে চান তবে ম্যাক্সেরউকয়েস্টলেংথকে "15360" এ সেট করুন এবং ম্যাক্সএলওয়েড কন্টেন্টলেন্টকে "15728640" (15 x 1024 x 1024) এ সেট করুন।

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

এমএসডিএন রেফারেন্স লিংক : https://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx


17

আমি বিশ্বাস করি যে ওয়েব.কমফাইজে এই লাইনটি সর্বাধিক আপলোড আকার নির্ধারণ করবে:

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>

দিনের অর্ধেক সময় কাটানোর পরে এটাই আমাকে সাহায্য করেছিল !!! অনেক ধন্যবাদ !!!
সাগর খাত্রি

13

আপনার অ্যাপ্লিকেশন ওয়েবকনফাইগে 2 জিবি সর্বাধিক সীমাবদ্ধতার জন্য:

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>

7

যদি এর উইন্ডোজ 2003 / IIS 6.0 হয় তবে ফোল্ডার সি: \ উইন্ডোজ \ system32 \ inetsrv located এ অবস্থিত ফাইল মেটাবেস.এক্সএমএল এএসপিএক্সএক্সএক্সএকটিএটিটিএলয়েড = "204800" পরীক্ষা করে দেখুন \

"204800" (~ 205Kb) এর ডিফল্ট মান বেশিরভাগ ব্যবহারকারীর কাছে আমার মতে খুব কম। আপনার মানটি সর্বাধিক হওয়া উচিত কেবল তার মানটি পরিবর্তন করুন।

আপনি যদি সম্পাদনা করার পরে ফাইলটি সংরক্ষণ করতে না পারেন তবে আপনাকে হয় আইএসএস-সার্ভারটি বন্ধ করতে হবে বা ফাইলটি সম্পাদনার অনুমতি দেওয়ার জন্য সার্ভারকে সক্ষম করতে হবে:

বিকল্প পাঠ
(উত্স: itmaskinen.se )

সম্পাদনা: আমি প্রশ্নটি সঠিকভাবে পড়িনি (কীভাবে ওয়েবকনফিগে সর্বাধিক সেট করা যায়)। তবে এই তথ্যটি অন্যান্য লোকদের জন্য হস্তক্ষেপ হতে পারে, অনেক লোক যারা win2000-সার্ভার থেকে win2003 এ তাদের সাইটগুলি সরিয়ে নিয়েছে এবং একটি কার্যনির্বাহী আপলোড-ফাংশন পেয়েছিল এবং হঠাৎ করে অনুরোধটি পেয়েছে। বাইনারিআরড ব্যর্থ ত্রুটিটি এর ব্যবহার করবে। সুতরাং আমি উত্তর এখানে ছেড়ে।


5

উইন ২০০ I আইআইএস সার্ভারে আমি একই সমস্যাটি করেছি, ওয়েব কনফিগে এই কনফিগারেশনটি যুক্ত করার পরে আমি সমস্যার সমাধান করেছি:

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

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

অ্যাপ্লিকেশনটি কোনও System.Web.UI.HtmlControls.HtmlInputFileসার্ভার উপাদান ব্যবহার করে থাকলে সমস্যা উপস্থিত রয়েছে । এটির সমাধানের জন্য অনুরোধ বাড়ানো লেন্থডিস্ক ডিসট্রেশহোল্ড।


1
মতে msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx "ইনপুট স্ট্রিম বাফারিং থ্রেশহোল্ড সীমা নির্দিষ্ট করে, কিলোবাইট হবে। এই মান maxRequestLength অ্যাট্রিবিউট অতিক্রম না করা উচিত।" সুতরাং এটি অনুরোধ দৈর্ঘ্যের হিসাবে একই হতে হবে?
জেফ

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

4

যদি আপনি ফ্রেমওয়ার্ক 4.6 ব্যবহার করেন

<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760"  />

4

সর্বাধিক ফাইলের আকার একক এমভিসি নিয়ন্ত্রক বা এমনকি কোনও অ্যাকশনে সীমাবদ্ধ থাকতে পারে।
ওয়েব.config <লোকেশন> ট্যাগ এর জন্য ব্যবহার করা যেতে পারে:

<location path="YourAreaName/YourControllerName>/YourActionName>">
  <system.web>
    <!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
    <httpRuntime maxRequestLength="15360" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
        <requestLimits maxAllowedContentLength="15728640" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>

অথবা আপনি এই ক্ষেত্রের নিজস্ব ওয়েবকনফাইগে এই এন্ট্রিগুলি যুক্ত করতে পারেন।


এটি গ্রহণযোগ্য উত্তরের পরিবর্তে উচ্চতর এবং ব্যবহৃত হওয়া উচিত, যেহেতু এটি অনুরোধের আকার বৈধ করার জন্য আরও সুরক্ষিত।
জোনাথন অরতেগা

4

আমি জানি এটি একটি পুরানো প্রশ্ন।

সুতরাং এটিই আপনাকে করতে হবে:

আপনার ওয়েবকনফাইগ ফাইলটিতে এটি যুক্ত করুন <system.web>:

<!-- 3GB Files / in kilobyte (3072*1024) -->
<httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

এবং এর অধীনে <system.webServer>:

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

আপনি মন্তব্যটিতে দেখুন কীভাবে এটি কাজ করে। একটিতে আপনাকে বাইটে এবং অন্যটিতে কিলোবাইটে সাই বানাতে হবে। আশা করি এইটি কাজ করবে.


2

আপনি আপনার অ্যাপ্লিকেশন ওয়েব কোডফাইগ ফাইলটিতে কোডের সেই ব্লকটি লিখতে পারেন।

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

এই কোডটি লিখে আপনি এখন থেকে আরও বড় ফাইল আপলোড করতে পারেন


0

আপনি যদি শেয়ারপয়েন্ট ব্যবহার করেন তবে প্রশাসনিক সরঞ্জামগুলির সাথে আপনার সর্বাধিক আকারটি কনফিগার করা উচিত: kb925083


0

এসপি আপলোড নিয়ন্ত্রণের জন্য কীভাবে ফাইলের আকার বাড়ানো যায় সে সম্পর্কে আমার একটি ব্লগ পোস্ট রয়েছে ।

পোস্ট থেকে:

ডিফল্টরূপে, ফাইলআপলোড নিয়ন্ত্রণ সর্বোচ্চ 4MB ফাইল আপলোড করতে দেয় এবং এক্সিকিউশনের সময়সীমা 110 সেকেন্ড হয়। এই বৈশিষ্ট্যগুলি ওয়েবকনফিগ ফাইলের HTRunটাইম বিভাগের মধ্যে থেকে পরিবর্তন করা যেতে পারে। সর্বোচ্চআরকুয়েস্টলেন্থ সম্পত্তি সর্বাধিক ফাইলের আকার নির্ধারণ করে যা আপলোড করা যায়। এক্সিকিউশনটাইমআউট সম্পত্তি কার্যকর করার জন্য সর্বোচ্চ সময় নির্ধারণ করে।


0

যদি এটি আপনার স্থানীয় মেশিনে কাজ করে এবং আইআইএস-এ স্থাপনার পরে কাজ না করে (আমি উইন্ডোজ সার্ভার ২০০৮ আর 2 ব্যবহার করেছি) আমার একটি সমাধান আছে have

আইআইএস খুলুন (inetmgr) আপনার ওয়েবসাইটে যান ডানদিকে কন্টেন্টে যান (ফিল্টারিংয়ের অনুরোধ করুন) বৈশিষ্ট্য সেটিংস সম্পাদনা করতে যান সর্বাধিক সামগ্রীর আকার পরিবর্তন করুন (আপনার প্রয়োজনীয় বাইটগুলি) এটি কাজ করবে। আপনি নিম্নলিখিত থ্রেড থেকেও http://www.iis.net/configreferences/system.webserver/security/requestfiltering/requestlimits থেকে সহায়তা নিতে পারেন


0

আপনি যদি এসএসএল সার্ট ব্যবহার করেন তবে আপনার এসএসএল পাইপলাইন এফ 5 সেটিংস কনফিগার করুন। গুরুত্বপূর্ণ mp

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