asp.net WebAPI路由问题

asp.net WebAPI路由问题,第1张

你这种方式应该是没办法区分它们的。这里有两种方法调用你的函数:

(1)指定路由:GetCustom()方法写下代码[Route("api/customers/GetCustomer

")],然后你可以用get方法调用地址"api/customers/GetCustomer"

(2)修改WebAipConfig类中Register的参数routeTemplate为:routeTemplate: "api/{controller}/{action}/{id}",然后调用地址”api/customers/getcustomer/1“

注:刚做过一个相关的项目。这两种方法应该是都可以实现你想要的结果的。

对于大型网站而言,分布式负载均衡技术都会用到,而一般小型站点基本上不会涉及这些技术,所以很多在中小型科创公司的同学对这两个概念可能还不太清楚。

什么是分布式系统?

分布式系统是相对于集中式系统而言的,中小型应用大多数都是集中式系统,即:整个项目所依懒的东西都在一个应用内,耦合度较高。而分布式系统就是将集中式应用按业务、功能、模块来进行拆分,部署在不同节点的服务器上以避免单一节点故障,提高系统的可用性。

通俗的说,分布式就是将同一个任务交给不同的服务器共同去完成,或者是不同任务交给不同服务器去完成。如果任务是相同的,这种分布式部署也可以称为“集群”。

什么是负载均衡?

负载均衡其实就是将用户的请求通过特定算法(如:轮询、随机、IPHash、URLHash等)分摊至不同服务器上去执行,负载均衡其实干的事就是任务调度和转发。

负载均衡技术的实现方案

负载均衡的实现方式有很多,最常见的有:

1、IP负载均衡

基于TCP/IP技术实现的负载均衡,这种可以借助硬件或软件来实现,硬件主要是F5,软件就很多了,比如:Nginx、HAProxy、LVS等。

2、DNS轮询

现在一些智能DNS解析平台可以轻松实现负载均衡,我们通过配置多条DNSA记录来分发请求至不同服务器上。但是DNS轮询有个致命缺点:缺乏及时的健康检查机制、暴露真实IP存在安全隐患。

3、CDN

其实CDN内容分发网络也是负载均衡的一种实现方式,CDN分布全国的节点服务器其实就是分布式部署的。

1、服务器是否正常启动(查看日志)

2、服务器的IP+PORT是否可以访问,查看端口是否被占用

3、若服务正常启动,端口也可以访问,查看你的访问路径是否正确(部署后的上下文webcontent是否与调试中一致)

4、访问不到有很多原因,要看你面对的具体问题去排查,比如报错信息之类~

和微信小程序一样,模拟器调用webapi不能使用>

如果不想使用Web API方式,可以将最后两行的代码删除,即删除以下两行代码:

servicesAddControllers();

servicesAddSwaggerGen(c =>

{

cSwaggerDoc("v1", new OpenApiInfo { Title = "MyToDoApi", Version = "v1" });

});

这两行代码的作用是添加控制器和Swagger文档生成器,如果不需要使用Web API,就不需要这些东西了。

另外,如果不使用Web API,可以将启动类中的以下代码删除:

servicesAddDbContext<MyToDoContext>(option =>

{

var connectionString = ConfigurationGetConnectionString("ToDoConnection");

optionUseSqlite(connectionString);

})AddUnitOfWork<MyToDoContext>()

AddCustomRepository<ToDo, ToDoRepository>();

因为这些代码都是用来配置数据库上下文和依赖注入的,如果不使用Web API,就不需要这些东西了。

先打开vs2010软件,找到项目文件,双击webconfig

VS2010中webconfig配置数据库连接

第一种:取连接字符串

string connString = SystemWebConfigurationWebConfigurationManagerConnectionStrings["SqlConnStr"]ConnectionString;

或者

protected static string connectionString = ConfigurationManagerConnectionStrings["SqlConnStr"]ConnectionString;

webconfig文件:加在</configSections>后面

<connectionStrings> <remove name="LocalSqlServer" /> <add name="SqlConnStr" connectionString="user id=xx;password=xx;initial catalog=database_name;data source=\sqlxxxx" /> </connectionStrings>

VS2010中webconfig配置数据库连接

第二种:取连接字符串:

string myvar=configurationsettingsappsettings["connstring"];

webconfig文件:加在<appsettings>和</appsettings> 之间

<appsettings> <add key="connstring" value="uid=xx;pwd=xx;database=batabase_name;server=(local)" /> </appsettings>

据说两者通用,但是第二种是aspnet20的新特性,建议使用第二种。其实我一直有个疑问,两个字符串中的UID;PWD;和User ID; Password;是否等价。根据网上我查到的资料是可以互换通用的。

VS2010中webconfig配置数据库连接

连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数

首先,连接SQL Server使用的命名空间不是"SystemDataOleDb",而是"SystemDataSqlClient"

其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):  "user id=sa":连接数据库的验证用户名为sa他还有一个别名"uid",所以这句我们还可以写成"uid=sa"  "password=":连接数据库的验证密码为空他的别名为"pwd",所以我们可以写为"pwd="  这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录

initial catalog=Northwind":使用的数据源为"Northwind"这个数据库他的别名为"Database",本句可以写成"Database=Northwind"  "Server=YourSQLServer":使用名为"YourSQLServer"的服务器他的别名为"Data Source","Address","Addr"如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址  "Connect Timeout=30":连接超时时间为30秒

 在这里,建立连接对象用的构造函数为:SqlConnection

7

最后要保存你所更改的文件,右键 保存(ctrl+S)

以上就是关于asp.net WebAPI路由问题全部的内容,包括:asp.net WebAPI路由问题、ASP.NETWebApi服务接口如何防止重复请求、vs2019 创建和调试webapi等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9631414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存