|
|
51CTO旗下网站
|
|
移动端

1.4.1 ASP.NET 应用

《Microsoft Azure 管理与开发(下册)平台服务PaaS》本书由世纪互联蓝云Microsoft Azure 开发技术支持团队的资深工程师们编写,主要阐述MicrosoftAzure PaaS 服务的开发应用,涉及计算服务、集成认证服务、数据存储服务、大数据服务等方面的内容。本节为大家介绍ASP.NET 应用。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-09 13:16

1.4 应用开发

1.4.1 ASP.NET 应用

ASP.NET 应用的先决条件:

安装Visual Studio 2013/2015;

安装相关版本的SDK;

连接China Azure(请参考1.1.7 节);

创建ASP.NET Web 应用。

打开Visual Studio,单击File→New→Project,在跳转出来的页面,选择ASP.NET WebApplication,并在下方Name 处填写项目名称,再单击OK,如图1.4.1-1 所示。

可将任何类型的 ASP.NET Web 应用部署到Azure。在本教程中,选择“MVC”模板,并确保将身份验证设置为无身份验证,再单击OK,如图1.4.1-2 所示。

如果还没有在管理门户创建Web App,则在跳转出来的页面单击Create,创建Web 应用;若之前已经在管理门户创建过网站,在这一步单击Skip 即可,如图1.4.1-3 所示。

发布到Azure(详细内容见1.4.7.2 节)。

测试结果如下。

若在VS 中看到输出图1.4.1-4 中的信息,说明部署成功。

再测试网站是否可以成功访问,测试URL,如图1.4.1-5 所示。

  1. h ttp://tsetfirstWebApplication20170410032542.chinacloudsites.cn/ 

ASP .NET 连接SQL Database。

在Web.config 中添加<connectionstring></ connectionstring >节点,具体内容如下:

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <configuration> 
  3. <startup> 
  4. <supportedRuntime version= " v4.0 " sku= " .NETFramework,Version=  
  5. v4.5.2" /> 
  6. </startup> 
  7. <connectionStrings> 
  8. <add name= " connectionString4NoUserIDNoPassword " connectionString= "  
  9. Server=tcp:zmtnmcprw2.database.chinacloudapi.cn,1433;Database=ttdb;User  
  10. ID=test@zmtnmcprw2;Password=qweQWE123;Trusted_Connection=False;Encrypt=True 
  11. ;Connection Timeout=30;" /> 
  12. </connectionStrings> 
  13. </configuration> 

其中数据库的连接字符串在管理门户数据库的仪表板页面,选择已创建的数据库,单击“概述”,“显示数据库连接字符串”获得,之后显示如图1.4.1-6 所示。

在“解决方案资源管理器”窗格中,右击App.config 节点,然后从弹出菜单中单击“属性”命令按钮,将“复制到输出目录(Copy to Ouput Directory)”设置为“始终复制(Copy always)”。

(1) 这将导致 App.config 文件的内容替换 *.exe.config 文件的内容,位于 *.exe 文件的生成目录。每次重新编译*.exe 时都会进行此替换。

(2) 当系统运行示例C#程序时,会读取*.exe.config 文件,如图1.4.1-7 所示。

在代码中进行数据库的相关操作,比如:下面的代码是数据库的查询操作。

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Configuration;  
  4. using System.Data;  
  5. using System.Data.SqlClient;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Threading.Tasks;  
  9. namespace testconnectsqldatabase  
  10. {  
  11. class Program  
  12. {  
  13. static void Main(string[] args)  
  14. {  
  15. string connectionString4NoUserIDNoPassword,  
  16. password, userName, SQLConnectionString;  
  17. // Get most of the connection string from ConnectAndQuery  
  18. _Example.exe.config  
  19. // file, in the same directory where ConnectAndQuery_Example.exe  
  20. resides.  
  21. connectionString4NoUserIDNoPassword = Program.GetConnection  
  22. StringFromExeConfig  
  23. ("ConnectionString4NoUserIDNoPassword");  
  24. // Get the user name from keyboard input.  
  25. Console.WriteLine("Enter your User ID, without the trailing @ and  
  26. server name: ");  
  27. userName = Console.ReadLine();  
  28. // Get the password from keyboard input.  
  29. password = Program.GatherPasswordFromConsole();  
  30. SQLConnectionString = "Password=" + password + ';' +  
  31. "User ID=" + userName + ";" + connectionString4NoUserIDNo  
  32. Password;  
  33. // Create an SqlConnection from the provided connection string.  
  34. using (SqlConnection connection = new SqlConnection  
  35. (SQLConnectionString))  
  36. {  
  37. // Formulate the command.  
  38. SqlCommand command = new SqlCommand();  
  39. command.Connection = connection;  
  40. // Specify the query to be executed.  
  41. command.CommandType = CommandType.Text;  
  42. command.CommandText = @"  
  43. SELECT TOP 3 CustomerID, Title, FirstName, LastName,  
  44. CompanyName  
  45. FROM Sales; -- In ttdb database.  
  46. ";  
  47. // Open a connection to database.  
  48. connection.Open();  
  49. // Read data returned for the query.  
  50. SqlDataReader reader = command.ExecuteReader();  
  51. while (reader.Read())  
  52. {  
  53. Console.WriteLine("Values: {0}, {1}, {2}, {3}, {4}",  
  54. reader[0], reader[1], reader[2], reader[3], reader[4]);  
  55. }  
  56. }  
  57. Console.WriteLine("View the results here, then press any key to  
  58. finish...");  
  59. Console.ReadKey(true);  
  60. }  
  61. //----------------------------------------------------------------------------------  
  62. static string GetConnectionStringFromExeConfig(string  
  63. connectionStringNameInConfig)  
  64. {  
  65. ConnectionStringSettings connectionStringSettings =  
  66. ConfigurationManager.ConnectionStrings[connectionStringNameInConfig];  
  67. if (connectionStringSettings == null)  
  68. {  
  69. throw new ApplicationException(String.Format  
  70. ("Error. Connection string not found for name '{0}'.",  
  71. connectionStringNameInConfig));  
  72. }  
  73. return connectionStringSettings.ConnectionString;  
  74. }  
  75. static string GatherPasswordFromConsole()  
  76. {  
  77. StringBuilder passwordBuilder = new StringBuilder(32);  
  78. ConsoleKeyInfo key;  
  79. Console.WriteLine("Enter your password: ");  
  80. do  
  81. {  
  82. key = Console.ReadKey(true);  
  83. if (key.Key != ConsoleKey.Backspace)  
  84. {  
  85. passwordBuilder.Append(key.KeyChar);  
  86. Console.Write("*");  
  87. }  
  88. else // Backspace char was entered.  
  89. {  
  90. // Retreat the cursor, overlay '*' with ' ', retreat again.  
  91. Console.Write("\b \b");  
  92. passwordBuilderpasswordBuilder.Length = passwordBuilder.Length - 1;  
  93. }  
  94. }  
  95. while (key.Key != ConsoleKey.Enter); // Enter key will end the  
  96. looping.  
  97. Console.WriteLine(Environment.NewLine);  
  98. return passwordBuilder.ToString();  
  99. }  
  100. }  

将上述代码发布到Azure Web App 上进行测试。

使用SQL Server Management Studio 连接数据库,在图1.4.1-8 中所示的空格位置输入数据库的相关信息进行连接操作。

在进行数据库的连接之前,需要在管理门户数据库页面顶部单击“设置服务器的防火墙”,“添加客户端IP”,以及在“允许访问Azure 服务”右侧单击“打开”,进行保存,如图1.4.1-9 所示。

连接上数据库之后,建立一个table 名为”sales”,并在表中插入数据,如图1.4.1-10所示。

使用SELECT CustomerId,Title,FirstName,LastName,CompanyName FROM Sales;进行查询,Query 结果如图1.4.1-11 所示。

测试结果如图1.4.1-12 所示。

详细内容请参考下面的链接:

  1. https://www.Azure.cn/documentation/articles/sql-database-connect-query  
  2. https://www.Azure.cn/documentation/articles/sql-database-connect-queryssms/ 


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络管理员考试全真模拟试题与解析

本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试题编写的。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊