Asp.net 我可以让应用程序在多个端口中侦听吗?(一个供公众使用,一个供私人使用)
我有一个Asp.net 我可以让应用程序在多个端口中侦听吗?(一个供公众使用,一个供私人使用),asp.net,asp.net-mvc,windows,iis,port,Asp.net,Asp.net Mvc,Windows,Iis,Port,我有一个.NETMVC应用程序,它有多种功能 我是否可以通过如下所示配置不同的端口,将此应用程序作为单个应用程序托管在IIS中 可能吗 实时场景:我在AzureIaaS虚拟机中托管应用程序。我的内部应用程序将使用API,客户应使用公共网站在我看来,最容易的事情是您可以防止Azure VM无法打开23004端口。详情,你可以参考这个 如果您不想使用Azure MV,可以考虑在Web API中使用自定义筛选器属性来检查请求是否是本地的。如果请求不是从本地发送的,那么您可以直接返回404Not
.NETMVC
应用程序,它有多种功能
我是否可以通过如下所示配置不同的端口,将此应用程序作为单个应用程序托管在IIS
中
实时场景:我在
Azure
IaaS虚拟机中托管应用程序。我的内部应用程序将使用API
,客户应使用公共网站
在我看来,最容易的事情是您可以防止Azure VM无法打开23004端口。详情,你可以参考这个
如果您不想使用Azure MV,可以考虑在Web API中使用自定义筛选器属性来检查请求是否是本地的。如果请求不是从本地发送的,那么您可以直接返回404NotFound错误
有关如何使用自定义筛选器属性的更多详细信息,您可以参考以下内容你是说网站和API在同一个应用程序中,你只需要23004端口就可以访问web API吗?是的,网站和API在同一个应用程序中。我想让端口23004(或任何其他端口)访问web API。我想为内部azure服务打开端口23004。所以我不能在NSG级别阻止。[类似Azure功能的内部服务]
Website to view product localhost:80/index.cs
API exposed for internal usage localhost:23004/Listporducts();
public class CustomActionAttribute : FilterAttribute, IActionFilter {
public void OnActionExecuting(ActionExecutingContext filterContext) {
if (filterContext.HttpContext.Request.IsLocal) {
filterContext.Result = new HttpNotFoundResult();
}
}
public void OnActionExecuted(ActionExecutedContext filterContext) {
// not yet implemented
}
}