আইআইএস 7 সংক্ষেপণের জন্য নির্দিষ্ট (তবে সমস্ত নয়) মাইম টাইমগুলিকে উপেক্ষা করছে? ত্রুটি প্রদান: DYNAMIC_COMPPressION_NOT_SUCCESS - কারণ 12


11

সুতরাং, আমি একটি আইআইএস n এন00 বি এর কিছুটা হলেও আমি বেশিরভাগ পুরানো আইআইএস সিস্টেমটি 3 এ ফিরে যাচ্ছি I'm আমি গতিশীল সংক্ষেপণ চালু করার চেষ্টা করছি এবং এটি বেশিরভাগ ক্ষেত্রেই কাজ করছে। এটি আমার ADO. নেট ডেটা সার্ভিসের (অ্যাস্টোরিয়া) অনুরোধগুলির জন্য কাজ করে না, বাচ্চা হয় বা না।

আমি ব্যর্থ অনুরোধ (FREB) ট্রেসিংটি পেয়েছি যা সত্যই সহায়ক ছিল। এবং অপ্রয়োজনীয় অনুরোধগুলিতে আমি যা দেখছি তা হ'ল Reason Code 12, NO_MATCHING_CONTENT_TYPE। ঠিক আছে, সুতরাং আমার কাছে মিলে যাওয়া MIME টাইপ নির্দিষ্ট করা নেই, এটি সহজ।

আমার ওয়েবকনফাইগে যা আছে তা বাদে (যা আমি সঠিক বলে মনে করি, তবে সম্ভবত না)।

<httpCompression dynamicCompressionDisableCpuUsage="100"
                 dynamicCompressionEnableCpuUsage="100"
                 noCompressionForHttp10="false"
                 noCompressionForProxies="false"
                 noCompressionForRange="false"
                 sendCacheHeaders="true"
                 staticCompressionDisableCpuUsage="100"
                 staticCompressionEnableCpuUsage="100">
    <dynamicTypes>
        <clear/>
        <add mimeType="*/*"
             enabled="true" />
    </dynamicTypes>
    <staticTypes>
        <clear/>
        <add mimeType="*/*"
             enabled="true" />
    </staticTypes>
</httpCompression>
<urlCompression doDynamicCompression="true"
                doStaticCompression="true"
                dynamicCompressionBeforeCache="false" />

এখন আমি মনে করি যে এর অর্থ হ'ল গ্রহণযোগ্যতা: জিজিপ শিরোনাম অন্তর্ভুক্ত এমন কোনও অনুরোধকে সংকুচিত করা উচিত। আমি এখানে অন্যরা কী ভাবতে পারে তা জানতে আগ্রহী।

আমার ফিডলারের ট্রেস:

GET /SecurityDataService.svc/GetCurrentAccount HTTP/1.1
Accept-Charset: UTF-8
Accept-Language: en-us
dataserviceversion: 1.0;Silverlight
Accept: application/atom+xml,application/xml
maxdataserviceversion: 1.0;Silverlight
Referer: http://sdev03/apptestpage.aspx
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Host: sdev03
Connection: Keep-Alive
Cookie: .ASPXAUTH=<snip>


HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/atom+xml;charset=utf-8
Server: Microsoft-IIS/7.0
DataServiceVersion: 1.0;
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Mon, 22 Mar 2010 22:29:06 GMT
Content-Length: 2726

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
*** <snip> removed ***

1
অ্যাপ্লিকেশন হোস্টকনফিগ সম্পাদনা করতে নোটপ্যাড ব্যবহার করুন। আমি নোটপ্যাড ++ (সেইসাথে ভিজ্যুয়াল স্টুডিও 2010 এর সম্পাদক হিসাবেও তৈরি) আমার পরিবর্তনগুলি আইআইএস দ্বারা প্রয়োগ করা হয়নি তা বোঝার আগে কয়েক ঘন্টা নষ্ট করেছি। ডায়ামিক টাইপস / স্ট্যাটিক টাইপস সংগ্রহে অতিরিক্ত মাইমটাইপ যুক্ত করার বিকল্প উপায় হ'ল অ্যাপসিএমডি ব্যবহার করা। "C:\Windows\System32\Inetsrv\Appcmd.exe" set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/javascript',enabled='True']" /commit:apphostএবং আবার: এই পরিবর্তনগুলি করার পরে - আপনি সেগুলি কেবল নোটপ্যাডে দেখতে পাবেন। নোটপ্যাড ++ (পাশাপাশি ভিজ্যুয়াল স্টুডিও 2010 সম্পাদক!)
সাশা

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

6
@ অ্যালেক্সান্ডার: সত্য, 64৪-বিট উইন্ডোতে নোটপ্যাড ++ বা ভিজ্যুয়াল স্টুডিওর মতো 32-বিট অ্যাপ্লিকেশনগুলি ব্যবহার করে সিস্টেম 32 ফোল্ডারের জন্য ফাইল পুনঃনির্দেশকে ট্রিগার করতে WOW64 পাবেন। সম্পাদনা সিতে একটি ক্লোন তৈরি করবে: \ উইন্ডোস \ সিসডাব্লু 64 কেবলমাত্র 32-বিট প্রোগ্রামগুলিতে দৃশ্যমান এবং এটি আইআইএস কখনও ব্যবহার করবে না এটি একটি 64-বিট প্রোগ্রাম
ফ্রেডরিক হাগলুন্ড

নোটপ্যাড আসলে কাজ করে ... নোটপ্যাড ++ এবং ভিজ্যুয়াল স্টুডিওগুলি পুনঃনির্দেশিত হয়।
ব্রায়ান হোয়াইট

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

উত্তর:


7

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


সঠিক। system.webServer কনফিগারেশনটি ওয়েব সাইট স্তরে httpCompression অনুমতি দেয় না। আপনি একইটি মূলতে অ্যাপ্লিকেশনহস্ট.কনফিগে কনফিগার করতে পারেন।
বিবেক কুম্ভার

এইচএমএম .. ডকস কি বলুন এটি ওয়েবকনফিগ স্তরে প্রয়োগ করা যেতে পারে - নীচে স্ক্রোল করুন: এমএসডিএন.মাইক্রোসফটকম /en-us/library/ms690689(v=vs.90).aspx এবং "কনফিগারেশন অবস্থানগুলি" দেখুন টেবিল .. এটি ডকুমেন্টেশনে কোনও সমস্যা?
avs099

@ avs099 আমি জানি না। আমি যখন 3 বছর আগে এটি পোস্ট করেছি তখন আমি নিশ্চিত যে আমি ওয়েবকনফিগ দিয়ে শুরু করেছি এবং আমি খ / সি পোস্ট করেছি যে এটি কাজ করছে না। হতে পারে প্যাচে কার্যকারিতা পরিবর্তিত হয়েছে বা ডক্সটি ভুল। এটি পরীক্ষা করার জন্য ভাল হবে।
পিটার ওহেলার্ট

1
ওহ - হতে পারে আমি পরিষ্কার ছিলাম না - যেভাবে আমি ডকুমেন্টেশন পড়ি, তাতে বলা হয়েছে যে httpCompression ওয়েবকনফিগে ব্যবহার করা যেতে পারে - তবে আমি এটি কাজ করতে সক্ষম হইনি তাই আমি অ্যাপ্লিকেশন হোস্টকনফিগ ফাইলটিও সংশোধন করে শেষ করেছি। আমার কাছে ডকুমেন্টেশন মনে হচ্ছে বিভ্রান্তিকর। : আমি তাই এখানে আমার উত্তর লিঙ্ক করবে stackoverflow.com/a/20552186/1246870
avs099

আমার উত্তরটি দেখুন - ডিফল্টরূপে, একটি পরিষ্কার আইআইএস ইনস্টল web.configসংক্ষেপণ সেটিংসের ওভাররাইডগুলি বন্ধ করে দেয় , এজন্য আপনাকে পরিবর্তন করতে হবে applicationHost.config। যদিও সেখানে সংক্ষেপণ সেটিংস পরিবর্তন করার পরিবর্তে, আপনি কেবল পরিবর্তে ওভাররাইডগুলিকে অনুমতি দিতে পারেন, এবং আপনি আবার ব্যবসায়ে ফিরে আসছেন।
এমসিডাব্লু

3

পিটার, ইঙ্গিতটির জন্য ধন্যবাদ - আমরা সেটিংসটিও খুঁজে পেয়েছি

<add mimeType="application/atom+xml; charset=utf-8" enabled="true" />

মধ্যে <httpCompression>বিভাগে applicationHost.configএই স্থির করেছি।

আমরা ছিল এনকোডিং উল্লেখ কম্প্রেশন কোডে একটি বাগ কারণে:

সংক্ষেপণ কোডে একটি ত্রুটি রয়েছে যে এটি প্রতিক্রিয়া শিরোনামে চরসেটটি সঠিকভাবে বিশ্লেষণ করে না, সুতরাং এটি কাজ করতে আপনাকে গতিশীল সংকোচনের সেটিংসে "অ্যাপ্লিকেশন / এক্সএমএল; চরসেট = utf-8" কনফিগার করতে হবে।

এখানে প্রাসঙ্গিক বিভাগটি সম্পূর্ণ

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
    <scheme name="deflate" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" dynamicCompressionLevel="4" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/atom+xml; charset=utf-8" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

3

একটি নতুন ইনস্টল থেকে, আমার applicationHost.config(ইন %windir%\system32\inetsrv\config) এ নিম্নলিখিত সেটিংস ছিল:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />

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

এতে স্যুইচিং:

<section name="httpCompression" overrideModeDefault="Allow" />

আমার মধ্যে httpCompressionট্যাগের অধীনে ট্যাগটির কনফিগারেশন সক্ষম করে । system.webServerweb.config

আমি এর httpCompressionবিভাগটি সেট করে এটি নিশ্চিত করেছি applicationHost.config:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

... এবং এখন আমি সমস্ত মাইমে টাইপ করতে পারি যা আমি প্রকৃতপক্ষে সংক্ষিপ্ত করতে চাই web.config


ব্যর্থ অনুরোধ ট্রেসিং এর জন্য এটি আমার সমস্যা সমাধানে খুব সহায়ক হয়েছিল: iis.net/learn/troubleshoot/ using
failed-

এটি আইআইএস 8 + এর জন্য মোটেও কাজ করে না। আইআইএসের নতুন সংস্করণগুলিতে স্তরে httpCompressionকাজ করার জন্য আপনার কি কোনও অভিজ্ঞতা আছে web.configবা এটি অসম্ভব? ডক্স একটি দুঃস্বপ্ন - এটি চুক্তিটি কোথাও সরকারী বলে তা বলে মনে হচ্ছে না।
theyetiman

@ থিয়েটিম্যান - দুঃখিত, আমি আইআইএস 8 + এর সাথে মোটেও কাজ করিনি। শুভকামনা।
এমসিডাব্লু

0

পাওয়ারশেল থেকে অনুপস্থিত মাইম টাইপগুলি যুক্ত করতে, নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='application/javascript'; enabled='True'}

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='image/svg+xml'; enabled='True'}

Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -AtIndex 0 -Value @{mimeType='text/css'; enabled='True'}

নোট করুন যে মাইমটাইপগুলির ক্রমটি গুরুত্বপূর্ণ, কারণ আইআইএস প্রথম ম্যাচটি নেবে বলে মনে হচ্ছে। এর অর্থ ওয়াইল্ডকার্ড (*) সহ মাইমটাইপগুলি ওয়াইল্ডকার্ড ছাড়াই মাইমটাইপগুলির নীচে হওয়া উচিত। সুতরাং নিশ্চিত হয়ে নিন যে মাইমটাইপটি */*নীচে রয়েছে, যেহেতু নীচে কোনও প্রবেশিকা ব্যবহার করা হবে না

সম্পাদনা:

আইআইএস সফল হয়, তাই সর্বোত্তম বিকল্পটি হ'ল স্ট্যাটিক টাইপগুলি সাফ করা এবং সবকিছুকে আবার সঠিক ক্রমে যুক্ত করা:

Clear-WebConfiguration -Filter "//system.webServer/httpCompression/staticTypes/add" -PSPath 'IIS:\'

SetCompressionOfMimeType 'text/*' 'True'
SetCompressionOfMimeType 'application/javascript' 'True'
SetCompressionOfMimeType 'image/svg+xml' 'True'
SetCompressionOfMimeType 'text/css' 'True'
SetCompressionOfMimeType '*/*' 'False'


function SetCompressionOfMimeType($mimeType, $enabled){
    Write-Output "Setting compression for $mimeType to $enabled"
    Add-WebConfiguration -Filter '/system.webServer/httpCompression/staticTypes' -PSPath 'IIS:\' -Value @{mimeType=$mimeType; enabled=$enabled}
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.