我是一个新手,对.net的世界还不熟悉,但我已经编程约15年了。
今天,我们有一个基于客户端/服务器的系统(即内部开发)。
一个轻客户端通过套接字连接到业务逻辑进程(BLP)。
客户端发送xml消息到BLP,后者通过相同的套接字回复xml。
到目前为止都很好。BLP是用未管理的c或Ada编写的(我们有两个系统,设计相同)
这些BLP现在要作为Web服务发布(或至少提供一些服务)
我们已经决定使用.net / c#/ IIS7作为应用程序服务器。
Web服务请求进入IIS,然后将其传递给我们的c#代码。 现在,生成这些BLP非常耗费资源,因此我为它们编写了一个池, 生成10个连接,并编写了一些函数,以便aps.net c#代码可以调用它们来 从池中请求连接,并将连接返回给池。 这基本上是一个连接的套接字。
我的问题是如何使这个池在IIS中静态? 我认为这有点像“数据库”池,并且最理想的情况是, 我会在web.config中有一个描述连接池的条目。
- 是否有任何接口我需要实现? - 是否有任何示例代码可供查看? - 它是否可行?
我的大部分搜索都描述了应用程序池,我认为这不是我想要的。
感谢有见地的评论
编辑:
嗯,投票是线程安全的,因此我首先尝试了第一种选项。已经有一个global.asax和一个global.asax.cs,所以我放置了像的代码
但是在控制器中,我看不到这个池。
客户端发送xml消息到BLP,后者通过相同的套接字回复xml。
到目前为止都很好。BLP是用未管理的c或Ada编写的(我们有两个系统,设计相同)
这些BLP现在要作为Web服务发布(或至少提供一些服务)
我们已经决定使用.net / c#/ IIS7作为应用程序服务器。
Web服务请求进入IIS,然后将其传递给我们的c#代码。 现在,生成这些BLP非常耗费资源,因此我为它们编写了一个池, 生成10个连接,并编写了一些函数,以便aps.net c#代码可以调用它们来 从池中请求连接,并将连接返回给池。 这基本上是一个连接的套接字。
我的问题是如何使这个池在IIS中静态? 我认为这有点像“数据库”池,并且最理想的情况是, 我会在web.config中有一个描述连接池的条目。
- 是否有任何接口我需要实现? - 是否有任何示例代码可供查看? - 它是否可行?
我的大部分搜索都描述了应用程序池,我认为这不是我想要的。
感谢有见地的评论
编辑:
嗯,投票是线程安全的,因此我首先尝试了第一种选项。已经有一个global.asax和一个global.asax.cs,所以我放置了像的代码
public class WebApiApplication : System.Web.HttpApplication
{
//bnl start
private Pool myPool = null;
public Pool MyPool
{
get { return myPool; }
}
//bnl stop
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//bnl start
myPool = new Pool(3, 0, "localhost", 58031, "user", "pwd", "proj");
myPool.Initialize();
//bnl stop
}
}
但是在控制器中,我看不到这个池。
namespace Resttest.Controllers
{
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
// the pool has method getPoolItem to return a free item/connection
PoolItem pi = Resttest.WebApiApplication.MyPool.getPoolItem();
return new string[] { "value1", "value2" };
}
但是,控制器中看不到 Resttest.WebApiApplication.MyPool。 作为完全的新手,在这个世界里,有什么明显的错误吗? / Björn