https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Конфигурирование проекта. Глобальные объекты
В каждом проекте существуют файлы, в которых содержится информация, относящаяся ко всему сайту. Это файл конфигурации web.config и файл global.asax.
Файл Web.config
ASP .NET конфигурируется с помощью нескольких глобальных файлов .config, которые находятся в директории .NET Framework. Это файлы формата XML, которые позволяют легко изменить поведение ASP .NET. Например, там находятся machine.config и machine.config.comments, в которых содержатся настройки сервера.
Например, в узле DbProviderFactories файла machine.config находится список провайдеров баз данных. Эти провайдеры появляются в диалоге Add Connection при добавлении новых соединений с источниками данных. В список можно добавлять новых провайдеров:
<DbProviderFactories> <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add name="SQL Server CE Data Provider" invariant="Microsoft.SqlServerCe.Client" description=".NET Framework Data Provider for Microsoft SQL Server 2005 Mobile Edition" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </DbProviderFactories>
В файле machine.config содержится информация, необходимая для работы служб персонализации и управления ролями. Профили пользователей хранятся в aspnetdb.mdf локального сервера SQL Express:
<connectionStrings> <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> </connectionStrings>
Каждая страница ASP .NET по умолчанию может обращаться к некоторым пространствам имен. Список этих пространств имен определен в конфигурационном файле <windir>\Microsoft.NET\Framework\<version>\CONFIG\web.config:
<pages> <namespaces> <add namespace="System" /> <add namespace="System.Collections" /> <add namespace="System.Collections.Specialized" /> <add namespace="System.Configuration" /> <add namespace="System.Text" /> <add namespace="System.Text.RegularExpressions" /> <add namespace="System.Web" /> <add namespace="System.Web.Caching" /> <add namespace="System.Web.SessionState" /> <add namespace="System.Web.Security" /> <add namespace="System.Web.Profile" /> <add namespace="System.Web.UI" /> <add namespace="System.Web.UI.WebControls" /> <add namespace="System.Web.UI.WebControls.WebParts" /> <add namespace="System.Web.UI.HtmlControls" /> </namespaces>
Вы можете изменять этот список, например добавить те пространства имен, которые используете во всех проектах. Но будьте осторожны, потому что в разных пространствах имен определены классы с одинаковыми именами. Например, класс Label определен в System.Windows.Forms и в System.Web.UI.WebControls, но в ASP .NET нужен только второй. Использование класса Label, когда включены оба заголовка, приведет к ошибке компиляции.
Классы находятся в сборках (assembly), и если вы хотите использовать нестандартную сборку, в проекте нужно создать ссылку на нее. Например, при работе с базой данных Oracle включается сборка System.Data.OracleClient. Чтобы создать ссылку, выберите в меню Website пункт Add Reference и выберите нужный компонент. В файл web.config проекта добавится пункт
<assemblies> <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies>
Какие сборки включаются по умолчанию, также определено в конфигурационном файле .NET Framework web.config:
<compilation> <add assembly="mscorlib" /> <add assembly="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add assembly="System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add assembly="System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <add assembly="System.Drawing, Version=2.0.0.0, Culture=neu- tral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.EnterpriseServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="System.Web.Mobile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <add assembly="*" /> </assemblies>
В этот список можно добавить те сборки, которые используются во всех ваших проектах.
Глобальные настройки применяются иерархически, то есть ко всем приложениям сайта, если какая-то настройка не переопределена в локальном файле Web.config. Web.config имеет XML-формат и находится в корневой директории сайта. В поддиректориях проекта могут находиться свои конфигурационные файлы, действие которых распространяется на данную директорию.