web.config сомневается при работе с устаревшим приложением в ASP.NET
Кодирование с помощью ASP.NET 2.0 C# в унаследованном приложении. База данных находится в MySQL
Я хотел бы знать, что-нибудь ломается, если я удаляю следующие строки из моего кода
Первый <xhtmlConformance mode="Strict"/>
Затем,
<compilers>
<compiler language="c#"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
extension=".cs"
compilerOptions="/d:DEBUG;trACE"/>
</compilers>
И последнее,
<browserCaps>
<case match="^Mozilla/5\.0 \([^)]*\) (Gecko/[-\d]+)(?'VendorProductToken' (?'type'[^/\d]*)([\d]*)/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)))?">
browser=Gecko
<filter>
<case match="(Gecko/[-\d]+)(?'VendorProductToken' (?'type'[^/\d]*)([\d]*)/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)))">
type=${type}
</case>
<case>
<!-- plain Mozilla if no VendorProductToken found -->
type=Mozilla
</case>
</filter>
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
ecmascriptversion=1.5
w3cdomversion=1.0
css1=true
css2=true
xml=true
tagwriter=System.Web.UI.HtmlTextWriter
<case match="rv:(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
version=${version}
majorversion=0${major}
minorversion=0${minor}
<case match="^b" with="${letters}">
beta=true
</case>
</case>
</case>
<!-- AppleWebKit Based Browsers (Safari...) //-->
<case match="AppleWebKit/(?'version'(?'major'\d?)(?'minor'\d{2})(?'letters'\w*)?)">
browser=AppleWebKit
version=${version}
majorversion=0${major}
minorversion=0.${minor}
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
ecmascriptversion=1.5
w3cdomversion=1.0
css1=true
css2=true
xml=true
tagwriter=System.Web.UI.HtmlTextWriter
<case match="AppleWebKit/(?'version'(?'major'\d)(?'minor'\d+)(?'letters'\w*))(.* )?(?'type'[^/\d]*)/.*( |$)">
type=${type}
</case>
</case>
<!-- Konqueror //-->
<case match=".+[K|k]onqueror/(?'version'(?'major'\d+)(?'minor'(\.[\d])*)(?'letters'[^;]*));\s+(?'platform'[^;\)]*)(;|\))">
browser=Konqueror
version=${version}
majorversion=0${major}
minorversion=0${minor}
platform=${platform}
type=Konqueror
frames=true
tables=true
cookies=true
javascript=true
javaapplets=true
ecmascriptversion=1.5
w3cdomversion=1.0
css1=true
css2=true
xml=true
tagwriter=System.Web.UI.HtmlTextWriter
</case>
<!-- Opera //-->
<case match="Opera[ /](?'version'(?'major'\d+)(?'minor'\.(?'minorint'\d+))(?'letters'\w*))">
<filter match="[7-9]" with="${major}">
tagwriter=System.Web.UI.HtmlTextWriter
</filter>
<filter>
<case match="7" with="${major}">
<filter>
<case match="[5-9]" with="${minorint}">
ecmascriptversion=1.5
</case>
<case>
ecmascriptversion=1.4
</case>
</filter>
</case>
<case match="[8-9]" with="${major}">
ecmascriptversion=1.5
</case>
</filter>
</case>
</browserCaps>
Я считаю, что они все не нужны. Нужны ли они вообще в настоящее время? То, что я действительно хотел бы знать, является ли что-нибудь сломанным, если я удаляю их.
Я также хотел бы знать, относится ли приведенный ниже фрагмент к ASP.NET 2.0
<sessionState mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="100"/>
когда мое приложение использует MySQL в качестве базы данных и режим аутентификации Windows.
1 ответ
Параметр xhtmlConformance меняет переходный режим на строгий. Основное изменение заключается в том, что атрибут name удаляется из элементов формы. Источник
Указанный компилятор равен 2.0, поэтому фактических изменений компилятора не будет. Однако компиляция определяет как отладочные флаги, так и трассировку. Их можно использовать с #if-операторами. Оба должны быть удалены в производственной среде, так же, как вы будете использовать. Обратите внимание, что настройки компилятора должны быть в system.codeDom, а не в system.web. Источник
Ваш browserCaps может (должен?) Быть перемещен в вашу папку App_Browsers. Вы в основном определили возможности различных браузеров, и где-то в вашем коде есть проверки, поддерживает ли ваш браузер определенные детали, такие как JavaScript или фреймы. Это не удастся, поскольку надстройки браузера, такие как Noscript, сделают обнаружение недействительным.
Ваш sessionState называется InProc, что означает, что он обрабатывается процессом iis. Строки подключения не используются в этом режиме (для этого вам нужен StateServer или SqlServer). Cookieless=false - это режим по умолчанию, но вы увеличили время ожидания сеанса до 100 (по умолчанию 20). Источник