ASP.NET MVC中两个配置文件的作用详解
在ASP.NET MVC中,有两个配置文件:Web.config
和App.config
。这两个文件都包含了应用程序的配置信息,但是它们的作用和使用方式有所不同。本攻略将详细讲解这两个配置文件的作用和使用方法。
Web.config
Web.config
是ASP.NET应用程序的主配置文件,它包含了应用程序的所有配置信息。在ASP.NET MVC中,Web.config
文件通常位于应用程序的根目录下。以下是Web.config
文件的一些常见配置项:
connectionStrings
:用于配置数据库连接字符串。appSettings
:用于配置应用程序的自定义设置。system.web
:用于配置ASP.NET Web应用程序的设置,如Session状态、身份验证、授权等。system.webServer
:用于配置IIS服务器的设置,如HTTP模块、HTTP处理程序、URL重写等。
以下是一个示例Web.config
文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="MySetting" value="MyValue" />
</appSettings>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<sessionState mode="InProc" timeout="20" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
<handlers>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
在上面的示例中,Web.config
文件包含了一个数据库连接字符串、一个自定义设置、一个身份验证设置、一个授权设置、一个Session状态设置、一个HTTP模块设置、一个HTTP处理程序设置和一个URL重写设置。
App.config
App.config
是.NET应用程序的配置文件,它包含了应用程序的所有配置信息。在ASP.NET MVC中,App.config
文件通常位于应用程序的根目录下。以下是App.config
文件的一些常见配置项:
connectionStrings
:用于配置数据库连接字符串。appSettings
:用于配置应用程序的自定义设置。system.net
:用于配置网络设置,如代理服务器、SMTP服务器等。system.diagnostics
:用于配置应用程序的诊断设置,如日志记录、性能计数器等。
以下是一个示例App.config
文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="MySetting" value="MyValue" />
</appSettings>
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy proxyaddress="http://proxyserver:80" bypassonlocal="true" />
</defaultProxy>
<mailSettings>
<smtp from="noreply@example.com">
<network host="smtp.example.com" port="587" userName="username" password="password" />
</smtp>
</mailSettings>
</system.net>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\temp\mylog.txt" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
在上面的示例中,App.config
文件包含了一个数据库连接字符串、一个自定义设置、一个代理服务器设置和一个日志记录设置。
示例说明
以下是两个示例说明,演示如何在ASP.NET MVC应用程序中使用Web.config
和App.config
文件。
示例1:使用Web.config配置数据库连接字符串
以下是使用Web.config
配置数据库连接字符串的步骤:
- 在
Web.config
文件中添加一个connectionStrings
节点,并在其中添加一个add
节点,如下所示:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
在上面的代码中,我们添加了一个名为DefaultConnection
的数据库连接字符串,它连接到本地的MSSQLLocalDB实例,并使用Windows身份验证。
- 在应用程序中使用
ConfigurationManager.ConnectionStrings
属性获取数据库连接字符串,如下所示:
var connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
在上面的代码中,我们使用ConfigurationManager.ConnectionStrings
属性获取名为DefaultConnection
的数据库连接字符串。
示例2:使用App.config配置SMTP服务器
以下是使用App.config
配置SMTP服务器的步骤:
- 在
App.config
文件中添加一个system.net
节点,并在其中添加一个mailSettings
节点,如下所示:
<system.net>
<mailSettings>
<smtp from="noreply@example.com">
<network host="smtp.example.com" port="587" userName="username" password="password" />
</smtp>
</mailSettings>
</system.net>
在上面的代码中,我们添加了一个SMTP服务器设置,它使用smtp.example.com
作为主机名,端口号为587
,用户名为username
,密码为password
。
- 在应用程序中使用
ConfigurationManager.GetSection
方法获取SMTP服务器设置,如下所示:
var smtpSection = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
var smtpServer = smtpSection.Network.Host;
var smtpPort = smtpSection.Network.Port;
var smtpUserName = smtpSection.Network.UserName;
var smtpPassword = smtpSection.Network.Password;
在上面的代码中,我们使用ConfigurationManager.GetSection
方法获取system.net/mailSettings/smtp
节点,并从中获取SMTP服务器的设置。
结论
本攻略详细讲解了ASP.NET MVC中两个配置文件Web.config
和App.config
的作用和使用方法。我们提供了详细的步骤和示例说明,以帮助您更好地理解和使用这两个配置文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET MVC中两个配置文件的作用详解 - Python技术站