你这种方式应该是没办法区分它们的。这里有两种方法调用你的函数:
(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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)