使用ASP.NET MVC3控制器从运行C#服务器请求信息

时间:2013-12-06 14:14:32

标签: c# asp.net asp.net-mvc asp.net-mvc-3

我有一个具有以下属性的应用程序:

  • 客户端在网络上有一台机器,其中包含一段C#代码,用于收集有关运行它的机器的详细信息,并定期将这些详细信息发送到我在C#中编写的小服务器
  • 然后通过查看服务器命令行
  • 向客户显示客户端的详细信息
  • 一次可以有多个客户

我希望此应用程序不是将详细信息显示到服务器命令行,而是将它们显示在ASP.NET MVC 3页面上。我是ASP.NET的新手,对我来说很光......

我正在考虑a)客户端让它用新的细节远程更新数据库并一起切断服务器(但是这可能会导致大量的开销,因为有多个客户端运行在一个) ,然后让ASP.NET应用程序查询数据库或b)在服务器中创建一个新方法,一旦调用,将返回当前连接的客户端列表及其上次提交的详细信息,然后让我的控制器在ASP.NET中调用这个方法并显示细节?

思考?建议?

2 个答案:

答案 0 :(得分:1)

我建议尽可能多地使用MS堆栈为您提供的(IIS而不是您自己的服务器)并尽可能保持简单(例如,尽量不要编写自己的服务器)。

选项A的变体是我认为最优化的。但是,不要让客户端直接将其保存到您的数据库中,而是让它们将其发送到您的Web API,作为一种可以验证内容或在需要时更改数据的层的方法。

这个相同的Web API可以将数据返回到已存储在数据库中的其他客户端。

试用本教程让您入门: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

答案 1 :(得分:0)

这与我即将为我的MVC应用程序编写的内容不同,MVC应用程序将在请求控制器操作(Web页面)时呈现所有用户和当前用户的访问次数等数据,但作为Kay状态,我会调查IIS以收集此信息,尽管您可以合并一个ApiController,它只是从客户端计算机收集事件监听器的数据(JSON)。如果不确切地知道您从客户端计算机请求的原因和数据,则很难指导您朝着正确的方向前进。使用ASP.NET WebAPI创建Restful Web服务可能是最佳选择,因为您还可以根据AD中的用户组(即高级用户)对请求进行身份验证。例如,您的Web.config文件将包含

<authentication mode="Windows"/>
    <authorization>
       <allow roles = "PowerUsers"/>
       <allow roles = "Administrators"/>
       <deny users="*" />
    </authorization>
....

这只是一个开始,我将在我自己的项目中添加内容。如果你到处都可以自己回答?因为你已经达到我的好奇心,我喜欢猫。